
/* Layout: a night-time flagship showroom. Carbon black, warm graphite, one brand red used like a brake light.
   Light display type, wide tracking, hairlines, generous space. The car explodes into its parts on scroll. */
:root{
  --night:#0A0909; --carbon:#121010; --graphite:#1C1918; --panel:#171414;
  --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.18);
  --text:#F3EFEE; --muted:#A49C99; --dim:#6F6865;
  --red:#B8272E; --red-hot:#E0434A; --red-deep:#67181B;
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1280px; color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--night);color:var(--text);font-family:var(--f-body);font-weight:400;font-size:16px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{display:block}
:focus-visible{outline:2px solid var(--red-hot);outline-offset:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(16px,4vw,48px)}
h1,h2,h3{font-family:var(--f-display);font-weight:300;font-variation-settings:"wdth" 112;line-height:1.04;margin:0;text-wrap:balance;letter-spacing:-.005em}
h2{font-size:clamp(32px,4.6vw,64px)}
h3{font-size:22px;font-weight:400}
p{margin:0}
b,strong{font-weight:600}
.eyebrow{font-family:var(--f-body);font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.eyebrow.r{color:var(--red-hot)}
.lede{color:var(--muted);font-size:18px;font-weight:300;max-width:58ch}
.num{font-family:var(--f-display);font-variation-settings:"wdth" 108;font-variant-numeric:tabular-nums;font-weight:300}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font:600 13px var(--f-body);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:17px 30px;border-radius:2px;border:1px solid transparent;cursor:pointer;transition:background .3s,border-color .3s,color .3s,transform .3s}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-hot)}
.btn-line{border-color:var(--line-2);color:var(--text);background:transparent}
.btn-line:hover{border-color:var(--text)}
.link{font:600 12px var(--f-body);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;display:inline-flex;gap:10px;align-items:center;color:var(--text)}
.link::after{content:"";width:28px;height:1px;background:var(--red-hot);transition:width .3s}
.link:hover::after{width:44px}
section{padding-block:clamp(80px,11vw,160px)}
.head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.head > *{min-width:0}
.head h2{margin-top:18px}
@media (max-width:860px){.head{grid-template-columns:1fr}}

/* Nav */
header.nav{position:fixed;left:0;right:0;top:0;z-index:60;padding-top:env(safe-area-inset-top,0px);transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
header.nav.solid{background:rgba(10,9,9,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:var(--line)}
header.nav .wrap{display:flex;align-items:center;gap:28px;height:76px}
.logo img{height:42px;width:auto}
.menu{display:flex;gap:4px;list-style:none;margin:0 auto 0 12px;padding:0}
.menu a,.menu button{display:block;font:500 13px var(--f-body);letter-spacing:.06em;padding:10px 12px;text-decoration:none;background:none;border:0;color:var(--text);cursor:pointer;opacity:.82;transition:opacity .2s}
.menu a:hover,.menu button:hover{opacity:1}
.menu > li{position:relative}
.mega{position:absolute;top:calc(100% + 18px);left:0;width:min(760px,86vw);background:rgba(18,16,16,.97);backdrop-filter:blur(18px);border:1px solid var(--line);padding:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:.3s}
.has-mega:hover .mega,.has-mega:focus-within .mega,.has-mega.open .mega{opacity:1;visibility:visible;transform:none}
.mega h4{margin:0 0 10px;font:600 11px var(--f-body);letter-spacing:.2em;color:var(--red-hot);text-transform:uppercase}
.mega a{padding:5px 0;font-size:14px;opacity:.75;letter-spacing:0}
.nav-right{display:flex;align-items:center;gap:18px;margin-left:auto}
.nav-right .phone{font:500 13px var(--f-body);letter-spacing:.06em;color:var(--muted);text-decoration:none;user-select:all}
.nav-right .btn{padding:12px 20px;font-size:11px}
.burger{display:none;background:none;border:1px solid var(--line-2);color:var(--text);padding:9px 14px;font:600 11px var(--f-body);letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
@media (max-width:1080px){
  .menu{display:none;position:absolute;top:76px;left:0;right:0;flex-direction:column;background:rgba(10,9,9,.97);padding:14px clamp(16px,4vw,48px) 24px;margin:0;border-bottom:1px solid var(--line)}
  .menu.show{display:flex}
  .mega{position:static;opacity:1;visibility:visible;transform:none;display:none;grid-template-columns:1fr;width:auto;border:0;padding:6px 12px;background:none}
  .has-mega.open .mega{display:grid}
  .burger{display:block}.nav-right .phone{display:none}
}
@media (max-width:520px){.nav-right .btn{display:none}}

/* Hero: sticky exploded-view stage */
.hero{position:relative;height:290vh;padding:0}
.stage{position:sticky;top:0;height:100vh;height:100svh;min-height:600px;overflow:hidden;
  background:
    radial-gradient(60% 46% at 50% 64%,rgba(184,39,46,.16),transparent 70%),
    radial-gradient(80% 60% at 50% 100%,#2A2524 0%,transparent 70%),
    linear-gradient(180deg,#0A0909 0%,#100E0E 60%,#171313 100%)}
.stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,transparent,rgba(10,9,9,.9));pointer-events:none}
.floor{position:absolute;left:-30%;right:-30%;bottom:-10%;height:52%;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:80px 80px;transform:perspective(700px) rotateX(70deg);transform-origin:bottom;mask-image:radial-gradient(ellipse at 50% 100%,#000 20%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 50% 100%,#000 20%,transparent 70%)}
.ghost-word{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);font:200 clamp(120px,26vw,420px) var(--f-display);font-variation-settings:"wdth" 125;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.07);white-space:nowrap;pointer-events:none;user-select:none}
.hero-copy{position:absolute;left:0;right:0;top:clamp(100px,13vh,140px);z-index:5;opacity:var(--co,1);transform:translateY(var(--cy,0px));will-change:opacity,transform}
.hero-copy .wrap{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap}
.hero h1{font-size:clamp(36px,4.8vw,78px);font-weight:200;font-variation-settings:"wdth" 118;line-height:1;max-width:14ch}
.hero h1 em{font-style:normal;font-weight:400;color:var(--red-hot)}
.phase{max-width:340px;display:grid;gap:14px;padding-top:10px}
.phase p{color:var(--muted);font-weight:300}
.phase .eyebrow{color:var(--red-hot)}
.swap{display:grid}
.swap > *{grid-area:1/1;transition:opacity .6s,transform .6s}
.swap .b{opacity:0;transform:translateY(10px)}
.stage.exploded .swap .a{opacity:0;transform:translateY(-10px)}
.stage.exploded .swap .b{opacity:1;transform:none}
.oob{position:absolute;left:50%;top:62%;width:min(960px,88vw,calc((100vh - 300px)*2.03));aspect-ratio:997/490;transform-style:preserve-3d;transform:translate(-50%,-50%) perspective(1600px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));z-index:3}
.film{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;opacity:var(--fo,0);transition:opacity .5s;
  transform:translate3d(var(--fx,0px),var(--fy,0px),0) scale(1.03);
  -webkit-mask-image:radial-gradient(ellipse 78% 82% at 50% 54%,#000 62%,transparent 100%);mask-image:radial-gradient(ellipse 78% 82% at 50% 54%,#000 62%,transparent 100%)}
.oob,.reflect{transition:opacity .5s}
.stage.has-film .oob,.stage.has-film .reflect{opacity:0!important;pointer-events:none}
.hero.long{height:420vh}
.stage.has-film .ghost-word{opacity:.5}
.reduce .film{display:none}
/* Out-of-bounds: the car sits inside a showroom screen and drives out over its left edge */
.screen{position:absolute;left:20%;right:16%;top:-9%;bottom:-3%;border-radius:20px;opacity:var(--so,1);
  transform:translateX(var(--px,0px));
  background:radial-gradient(70% 80% at 62% 38%,#2B2322 0%,#151111 62%,#0E0B0B 100%);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 0 0 1px rgba(224,67,74,.22),0 30px 90px -20px rgba(184,39,46,.45),inset 0 0 90px rgba(0,0,0,.85)}
.screen::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(118deg,rgba(255,255,255,.09),transparent 34%),repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px);pointer-events:none}
.screen::after{content:"";position:absolute;left:8%;right:8%;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,var(--red-hot),transparent);box-shadow:0 0 24px 4px rgba(224,67,74,.55);border-radius:2px}
.oob-clip{position:absolute;inset:0;clip-path:polygon(-40% -60%,var(--cr,84%) -60%,var(--cr,84%) 140%,-40% 140%);transform:scale(var(--cs,1))}
.car3d{position:absolute;inset:0;transform-style:preserve-3d;transform:perspective(1600px);animation:rollout 1.8s cubic-bezier(.16,.9,.24,1) both}
@keyframes rollout{from{transform:perspective(1600px) translate3d(14%,-2%,-140px) scale(.9)}to{transform:perspective(1600px)}}
.car3d i{position:absolute;pointer-events:none;opacity:var(--go,1)}
.gloss,.shade{inset:0;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-image:var(--carmask);mask-image:var(--carmask)}
.gloss{background:linear-gradient(104deg,transparent 46.5%,rgba(255,255,255,.2) 49%,rgba(255,255,255,.05) 51%,transparent 53%);background-size:260% 100%;background-position:var(--gx,60%) 0;mix-blend-mode:screen}
.shade{background:linear-gradient(90deg,transparent 58%,rgba(14,11,11,.55) 74%,rgba(14,11,11,.92) 84%);opacity:calc(var(--go,1) * var(--so,1))}
.beam{border-radius:50%;mix-blend-mode:screen;background:radial-gradient(closest-side,rgba(255,250,245,.85),rgba(255,220,205,.22) 40%,transparent 100%);animation:lights 2.6s ease-out both}
.beam.b1{left:35%;top:29%;width:17%;height:11%}
@keyframes lights{0%,52%{opacity:0;transform:scale(.6)}58%{opacity:1;transform:scale(1.15)}63%{opacity:.35}70%,100%{opacity:var(--go,1);transform:none}}
.flare{left:30%;top:24%;width:44%;height:24%;background:radial-gradient(closest-side,rgba(255,236,226,.22),transparent);mix-blend-mode:screen;animation:lights 2.6s ease-out both}
.slice{position:absolute;inset:0;will-change:transform,opacity}
.slice img{position:absolute;inset:0;width:100%;height:100%}
.parts{position:absolute;left:50%;top:calc(50% + 40px);width:min(1180px,96vw,calc((100vh - 290px)*1.53));aspect-ratio:1492/976;transform:translate(-50%,-50%) perspective(1600px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) scale(var(--ps,.9));opacity:var(--po,0);z-index:4;pointer-events:none;will-change:transform,opacity}
.parts img{width:100%;height:100%;filter:drop-shadow(0 40px 60px rgba(0,0,0,.6))}
.reflect{position:absolute;left:50%;top:calc(62% + min(960px,88vw,calc((100vh - 300px)*2.03))*.235);width:min(820px,76vw);height:60px;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(0,0,0,.75),transparent 70%);z-index:2;opacity:var(--ro,1)}
.hero-bar{position:absolute;left:0;right:0;bottom:0;z-index:6;border-top:1px solid var(--line)}
.hero-bar .wrap{display:grid;grid-template-columns:repeat(4,1fr) auto;align-items:stretch}
.hero-bar .cell{padding:20px 22px 24px;border-left:1px solid var(--line)}
.hero-bar .cell:first-child{border-left:0;padding-left:0}
.hero-bar .num{font-size:28px;display:block;line-height:1.1}
.hero-bar small{color:var(--muted);font-size:12px;letter-spacing:.06em}
.progress{display:flex;align-items:center;gap:12px;padding-left:22px;border-left:1px solid var(--line);font:600 11px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.progress i{display:block;width:80px;height:1px;background:var(--line-2);position:relative;overflow:hidden}
.progress i::after{content:"";position:absolute;inset:0;background:var(--red-hot);transform-origin:left;transform:scaleX(var(--pp,0))}
@media (max-width:900px){.hero-bar .wrap{grid-template-columns:1fr 1fr}.progress{display:none}.hero-bar .cell:nth-child(3){border-left:0;padding-left:0}.hero-bar .cell:nth-child(n+3){border-top:1px solid var(--line)}.hero-bar .cell{padding:14px 16px}.hero-bar .num{font-size:22px}}
@media (max-width:700px){.phase{display:none}.oob{top:54%}.reflect{top:calc(54% + 88vw*.235)}.parts{top:50%}.cap{top:96px}}
.cap{position:absolute;left:0;right:0;top:92px;z-index:6;text-align:center;opacity:var(--po,0);pointer-events:none}
.cap .eyebrow{color:var(--red-hot)}
.cap p{font:200 clamp(20px,2.2vw,30px) var(--f-display);font-variation-settings:"wdth" 112;margin-top:6px}
.reduce .hero{height:auto}
.reduce .stage{position:relative;height:auto;padding-block:150px 160px}
.reduce .oob-clip{clip-path:none;transform:none}.reduce .screen,.reduce .car3d i{display:none}.reduce .car3d{animation:none}
.reduce .oob,.reduce .parts{position:relative;left:auto;top:auto;transform:none;margin:40px auto 0;opacity:1}

/* Statement */
.statement{background:var(--night)}
.statement h2{font-size:clamp(30px,4.2vw,58px);max-width:22ch}
.statement h2 span{color:var(--muted)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);margin-top:72px;border-top:1px solid var(--line)}
.trio > div{padding:28px 28px 0 0;display:grid;gap:10px}
.trio .num{font-size:clamp(40px,5vw,72px);line-height:1}
.trio .num sup{font-size:.4em;color:var(--red-hot);vertical-align:top;margin-left:4px}
.trio p{color:var(--muted);max-width:30ch}
@media (max-width:760px){.trio{grid-template-columns:1fr}.trio > div{padding-bottom:28px;border-bottom:1px solid var(--line)}}

/* Gap: instrument cluster */
.gap-sec{position:relative;overflow:hidden;background:radial-gradient(50% 50% at 50% 58%,rgba(184,39,46,.13),transparent 70%),var(--night)}
.gap-head{text-align:center;max-width:980px;margin:0 auto}
.gap-head h2{font-size:clamp(28px,3.6vw,52px);margin-top:20px}
.gap-head h2 span{color:var(--muted)}
.cluster{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(12px,3vw,40px);margin-top:clamp(48px,6vw,88px);perspective:1800px}
.dial{margin:0;justify-self:center;width:min(400px,100%);transform-style:preserve-3d;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.dial.left{transform:rotateY(22deg) rotateX(6deg)}
.dial.right{transform:rotateY(-22deg) rotateX(6deg)}
.cluster:hover .dial.left{transform:rotateY(14deg) rotateX(4deg)}
.cluster:hover .dial.right{transform:rotateY(-14deg) rotateX(4deg)}
.bezel{position:relative;aspect-ratio:1;border-radius:50%;padding:14px;
  background:conic-gradient(from 200deg,#5B5452,#1A1716 18%,#8A8381 32%,#221E1D 48%,#6E6765 64%,#141211 80%,#5B5452);
  box-shadow:0 50px 80px -30px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.06),inset 0 0 0 1px rgba(255,255,255,.12)}
.bezel svg{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 45%,#1F1B1A,#0B0A0A 70%);box-shadow:inset 0 10px 40px rgba(0,0,0,.9)}
.glass{position:absolute;inset:14px;border-radius:50%;background:linear-gradient(155deg,rgba(255,255,255,.14),rgba(255,255,255,0) 38%);pointer-events:none;transform:translateZ(30px)}
.track{fill:none;stroke:rgba(255,255,255,.08);stroke-width:10;stroke-linecap:round}
.fill{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1)}
.left .fill{stroke:#8A8381}
.right .fill{stroke:var(--red-hot);filter:drop-shadow(0 0 8px rgba(224,67,74,.7))}
.ticks line{stroke:rgba(255,255,255,.35);stroke-width:1}
.ticks line.maj{stroke:rgba(255,255,255,.75);stroke-width:1.6}
.ticks text{fill:var(--muted);font:500 11px var(--f-body);text-anchor:middle;dominant-baseline:middle}
.needle{transform-origin:150px 160px;transition:transform 1.6s cubic-bezier(.3,1.4,.4,1)}
.needle line{stroke:#F3EFEE;stroke-width:3;stroke-linecap:round}
.right .needle line{stroke:var(--red-hot)}
.needle circle{fill:#2A2524;stroke:#8A8381;stroke-width:2}
.bezel figcaption{position:absolute;left:0;right:0;bottom:16%;text-align:center;transform:translateZ(20px)}
.bezel figcaption small{display:block;font:600 10px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.bezel figcaption .num{font-size:clamp(28px,3.4vw,44px);font-weight:200;line-height:1.1}
.bezel figcaption i{font-style:normal;font-size:.42em;color:var(--muted);margin-left:2px}
.right figcaption .v{color:var(--text)}
.gap-core{display:grid;justify-items:center;gap:8px;text-align:center;min-width:0;max-width:240px}
.gap-core .eyebrow{color:var(--muted)}
.gap-core > .num{font-size:clamp(52px,6vw,88px);font-weight:200;line-height:1;color:var(--red-hot);text-shadow:0 0 40px rgba(224,67,74,.35)}
.gap-core .pct{font:300 16px var(--f-body);color:var(--text)}
.bridge{width:200px;height:24px;margin-top:10px;overflow:visible}
.bridge path{fill:none;stroke:rgba(255,255,255,.2);stroke-width:1}
.bridge .pulse{stroke:var(--red-hot);stroke-width:2;stroke-dasharray:28 400;animation:pulse 2.4s linear infinite}
.gap-note{font-size:12px;color:var(--dim);margin-top:6px}
@keyframes pulse{from{stroke-dashoffset:28}to{stroke-dashoffset:-220}}
.readouts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(64px,8vw,110px);border-top:1px solid var(--line)}
.ro{display:grid;grid-template-columns:120px 1fr;grid-template-rows:auto;align-items:center;gap:22px;padding:34px 28px 0 0;position:relative}
.ro svg{width:120px;height:120px;transform:rotate(-90deg);grid-row:1}
.ro .rt{fill:none;stroke:rgba(255,255,255,.08);stroke-width:2}
.ro .rf{fill:none;stroke:var(--red-hot);stroke-width:2;stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:var(--off,327);transition:stroke-dashoffset 1.8s cubic-bezier(.2,.8,.2,1)}
.ro-txt{position:absolute;left:0;top:34px;width:120px;height:120px;display:grid;place-content:center;text-align:center}
.ro-txt .num{font-size:38px;font-weight:200;line-height:1}
.ro-txt small{font:600 9px var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.ro p{color:var(--muted);font-weight:300;font-size:15px;max-width:26ch}
@media (max-width:1000px){.readouts{grid-template-columns:1fr}.ro{padding-bottom:30px;border-bottom:1px solid var(--line)}}
@media (max-width:860px){.cluster{grid-template-columns:1fr 1fr;row-gap:36px}.gap-core{grid-column:1/-1;grid-row:1;max-width:none}.dial.left,.dial.right,.cluster:hover .dial.left,.cluster:hover .dial.right{transform:none}}
@media (max-width:480px){.bezel{padding:8px}.glass{inset:8px}.ticks text{font-size:16px}}

/* Lineup carousel */
.lineup-sec{background:linear-gradient(180deg,var(--night),var(--carbon));overflow:hidden}
.lineup-ctrl{display:flex;gap:8px;justify-content:flex-end}
.lineup-ctrl button{width:52px;height:52px;border:1px solid var(--line-2);background:transparent;color:var(--text);font-size:18px;cursor:pointer;transition:border-color .2s}
.lineup-ctrl button:hover{border-color:var(--text)}
.lineup{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:20px;scrollbar-width:none;perspective:1600px}
.lineup::-webkit-scrollbar{display:none}
.model{flex:0 0 clamp(270px,30vw,380px);scroll-snap-align:start;background:linear-gradient(180deg,var(--graphite),var(--panel));border:1px solid var(--line);padding:32px 28px;min-height:500px;display:flex;flex-direction:column;gap:18px;text-decoration:none;position:relative;transform-style:preserve-3d;--rx:0deg;--ry:0deg;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s cubic-bezier(.2,.8,.2,1),border-color .4s;overflow:hidden}
.model:hover{border-color:var(--line-2)}
.model::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--red-hot);transform:scaleX(0);transform-origin:left;transition:transform .5s}
.model:hover::before{transform:scaleX(1)}
.model .kicker{font:600 11px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--red-hot)}
.model h3{font-size:30px;font-weight:300;font-variation-settings:"wdth" 112;transform:translateZ(40px)}
.model p{color:var(--muted);font-weight:300;transform:translateZ(24px)}
.model .art{margin:auto -18px 0;height:230px;position:relative;transform:translateZ(60px);transform-style:preserve-3d}
.model .art::before{content:"";position:absolute;left:12%;right:12%;bottom:4%;height:40px;background:radial-gradient(ellipse at center,rgba(224,67,74,.32),transparent 70%);filter:blur(8px)}
.model .art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:brightness(.9) saturate(.9);transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .6s}
.model:hover .art img{transform:scale(1.1) translateY(-8px) rotate(-1.5deg);filter:none}
.hot{position:absolute;left:var(--hx);top:var(--hy);width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--red-hot);animation:hot 2.2s infinite;transform:translateZ(40px);z-index:2}
.hot::before{content:"";position:absolute;left:10px;top:4px;width:22px;height:1px;background:var(--red-hot)}
.hot::after{content:attr(data-label);position:absolute;left:32px;top:50%;transform:translateY(-50%);white-space:nowrap;font:600 10px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--text);background:rgba(10,9,9,.78);border:1px solid var(--red);padding:5px 9px}
.hot.l::before{left:auto;right:10px}
.hot.l::after{left:auto;right:32px}
@keyframes hot{0%{box-shadow:0 0 0 0 rgba(224,67,74,.65)}100%{box-shadow:0 0 0 14px rgba(224,67,74,0)}}
.model .link{transform:translateZ(30px)}

/* Configurator */
.config{display:grid;grid-template-columns:1fr 1.1fr;border:1px solid var(--line);background:var(--carbon)}
.config > *{min-width:0}
.config .inputs{padding:clamp(24px,4vw,48px);display:grid;gap:26px;border-right:1px solid var(--line)}
.config .out{padding:clamp(24px,4vw,48px);display:flex;flex-direction:column;gap:28px;background:radial-gradient(70% 60% at 60% 70%,rgba(184,39,46,.12),transparent 70%)}
@media (max-width:900px){.config{grid-template-columns:1fr}.config .inputs{border-right:0;border-bottom:1px solid var(--line)}}
.grp{display:grid;gap:18px}
.grp-title{font:600 11px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--red-hot)}
.range{display:grid;gap:8px}
.range .top{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--muted)}
.range output{font-family:var(--f-display);font-variation-settings:"wdth" 108;font-size:18px;color:var(--text);font-variant-numeric:tabular-nums}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:24px;background:transparent;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--red-hot) var(--fill,50%),var(--line-2) var(--fill,50%))}
input[type=range]::-moz-range-track{height:2px;background:var(--line-2)}
input[type=range]::-moz-range-progress{height:2px;background:var(--red-hot)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--text);margin-top:-8px;box-shadow:0 0 0 6px rgba(224,67,74,.18)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;border:0;background:var(--text);box-shadow:0 0 0 6px rgba(224,67,74,.18)}
.big .eyebrow{color:var(--muted)}
.big .num{display:block;font-size:clamp(48px,7vw,96px);line-height:1;margin-top:10px;font-weight:200}
.big .split{display:block;color:var(--muted);margin-top:10px;font-size:14px}
.bars{height:230px;display:flex;align-items:flex-end;justify-content:space-around;gap:10px;perspective:900px;border-bottom:1px solid var(--line-2);padding-top:20px}
.bar-group{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;min-width:0}
.bar-pair{display:flex;gap:22px;align-items:flex-end;height:170px;transform:rotateX(16deg) rotateY(-22deg);transform-style:preserve-3d}
.prism{position:relative;width:34px;height:var(--h,10%);transition:height .8s cubic-bezier(.2,.8,.2,1)}
.prism i{position:absolute;display:block}
.prism .f{inset:0;background:var(--c1)}
.prism .s{top:0;bottom:0;right:-14px;width:14px;background:var(--c2);transform:skewY(-45deg);transform-origin:left top}
.prism .t{left:0;right:0;top:-14px;height:14px;background:var(--c3);transform:skewX(-45deg);transform-origin:left bottom}
.p-now{--c1:#3A3433;--c2:#2A2524;--c3:#4C4544}
.p-up{--c1:var(--red);--c2:var(--red-deep);--c3:var(--red-hot)}
.bar-group b{font:600 11px var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.legend{display:flex;gap:22px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;margin-right:8px}
.fine{font-size:13px;color:var(--dim);border-left:2px solid var(--red);padding-left:14px}

/* State map */
.map-sec{background:var(--carbon);border-block:1px solid var(--line);overflow:hidden}
.map-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:center}
.map-grid > *{min-width:0}
@media (max-width:900px){.map-grid{grid-template-columns:1fr}}
.map-stage{perspective:1500px;padding-block:30px}
.usmap{display:grid;grid-template-columns:repeat(11,1fr);gap:4px;transform:rotateX(55deg) rotateZ(-10deg);transform-style:preserve-3d;transition:transform 1s cubic-bezier(.2,.8,.2,1);max-width:660px;margin:0 auto}
.map-stage:hover .usmap{transform:rotateX(44deg) rotateZ(-5deg)}
.st{aspect-ratio:1;border:1px solid rgba(255,255,255,.08);background:#1E1A1A;color:var(--muted);font:600 clamp(8px,1.1vw,11px) var(--f-body);letter-spacing:.04em;cursor:pointer;transform-style:preserve-3d;box-shadow:0 3px 0 #0C0B0B;transition:transform .35s,background .35s,color .35s,box-shadow .35s;padding:0}
.st:hover,.st.on{transform:translateZ(20px);background:var(--red);color:#fff;border-color:var(--red-hot);box-shadow:0 3px 0 var(--red-deep),0 20px 30px -6px rgba(224,67,74,.45)}
.st.on{transform:translateZ(36px)}
.state-card{display:flex;flex-direction:column;gap:16px;border-left:1px solid var(--line);padding-left:36px}
@media (max-width:900px){.state-card{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:28px}}
.state-card .abbr{font:200 96px var(--f-display);font-variation-settings:"wdth" 125;line-height:1;color:var(--red-hot)}
.state-card h3{font-size:34px;font-weight:300}

/* Process timeline */
.timeline{display:grid;grid-template-columns:repeat(6,1fr);position:relative;border-top:1px solid var(--line-2)}
.timeline > div{padding:30px 22px 0 0;position:relative}
.timeline > div::before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--night);border:1px solid var(--line-2);transition:background .3s,border-color .3s}
.timeline > div:hover::before{background:var(--red-hot);border-color:var(--red-hot)}
.timeline .num{font-size:14px;color:var(--red-hot);letter-spacing:.1em}
.timeline h3{font-size:22px;margin:10px 0 8px}
.timeline p{color:var(--muted);font-size:14px;font-weight:300}
@media (max-width:980px){.timeline{grid-template-columns:repeat(2,1fr);row-gap:30px}}
@media (max-width:480px){.timeline{grid-template-columns:1fr}}

/* Process drive */
.proc{padding:0}
.proc-track{position:relative}
.proc-stage{position:relative;min-height:min(100vh,860px);padding-block:clamp(80px,9vw,130px);display:flex;align-items:center;overflow:hidden;background:radial-gradient(50% 60% at 75% 55%,rgba(184,39,46,.10),transparent 70%)}
.proc-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,64px);align-items:center;width:100%}
.proc-grid > *{min-width:0}
.proc-left h2{font-size:clamp(28px,3.4vw,48px);margin-top:16px}
.proc-tabs{display:flex;gap:6px;margin-top:34px;flex-wrap:wrap}
.proc-tabs button{position:relative;overflow:hidden;width:46px;height:46px;border:1px solid var(--line-2);background:transparent;color:var(--muted);font:500 13px var(--f-body);letter-spacing:.06em;cursor:pointer;transition:all .3s}
.proc-tabs button:hover{color:var(--text);border-color:var(--text)}
.proc-tabs button[aria-selected="true"]{background:var(--red);border-color:var(--red);color:#fff}
.proc-tabs button[aria-selected="true"]::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:#fff;transform-origin:left;transform:scaleX(0);animation:tabfill var(--dur,3800ms) linear forwards;animation-play-state:var(--play,running)}
@keyframes tabfill{to{transform:scaleX(1)}}
.proc-stage.paused .proc-tabs button::after{animation-play-state:paused}
.rcar{transition:opacity .28s}
.rcar.reset{opacity:0}
.proc-tabs button.done{color:var(--red-hot);border-color:rgba(224,67,74,.45)}
.proc-detail{margin-top:30px;min-height:250px;border-left:1px solid var(--red);padding-left:26px;transition:opacity .2s,transform .2s}
.proc-detail.swap{opacity:0;transform:translateY(8px)}
.pd-num{display:block;font-size:64px;font-weight:200;line-height:1;color:var(--red-hot)}
.proc-detail h3{font-size:34px;font-weight:300;margin:8px 0 10px}
.proc-detail p{color:var(--muted);font-weight:300;max-width:46ch}
.pd-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0 0}
.pd-meta dt{font:600 10px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
.pd-meta dd{margin:4px 0 0;font-size:15px}
.proc-road{perspective:1100px;position:relative}
.road{position:relative;height:360px;transform:rotateX(60deg) rotateZ(-16deg);transform-style:preserve-3d;
  background:linear-gradient(90deg,rgba(255,255,255,.02),rgba(255,255,255,.06),rgba(255,255,255,.02)),repeating-linear-gradient(90deg,transparent 0 60px,rgba(255,255,255,.03) 60px 61px);
  border-block:1px solid var(--line-2)}
.lane{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.5) 0 26px,transparent 26px 50px)}
.lane-fill{position:absolute;left:0;top:50%;height:4px;margin-top:-2px;width:var(--pf,0%);background:var(--red-hot);box-shadow:0 0 18px rgba(224,67,74,.8)}
.mile{position:absolute;left:var(--x);top:50%;transform-style:preserve-3d}
.mile i{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;border:1px solid var(--line-2);background:var(--night);transition:all .4s}
.mile span{position:absolute;left:0;bottom:0;transform-origin:bottom left;transform:rotateX(-90deg) translateY(-10px) translateZ(0);white-space:nowrap;font:600 11px var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);padding:6px 10px;border-left:1px solid var(--line-2);transition:all .5s cubic-bezier(.2,.8,.2,1);height:28px}
.mile.on i{background:var(--red-hot);border-color:var(--red-hot);box-shadow:0 0 0 8px rgba(224,67,74,.15)}
.mile.on span{color:var(--text);border-color:var(--red-hot);transform:rotateX(-90deg) translateY(-70px);padding-bottom:60px}
.mile.cur span{color:#fff;background:linear-gradient(0deg,transparent,rgba(184,39,46,.35));transform:rotateX(-90deg) translateY(-110px);padding-bottom:100px}
.review{position:absolute;left:57%;width:17%;top:14%;height:72%;border:1px dashed rgba(224,67,74,.4);background:rgba(184,39,46,.06)}
.review span{position:absolute;left:10px;bottom:8px;font:600 11px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--red-hot)}
.rcar{position:absolute;left:var(--cx,0%);top:50%;width:150px;transform-style:preserve-3d;transform:translate(-50%,-50%)}
.rcar img{width:150px;height:auto;transform-origin:bottom center;transform:rotateX(-90deg) translateY(-6px) scaleX(-1);filter:drop-shadow(0 20px 18px rgba(0,0,0,.7))}
.road-ends{display:flex;justify-content:space-between;margin-top:22px;font:600 11px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.proc-hint{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);font:600 10px var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:var(--dim);opacity:var(--ho,1);transition:opacity .4s}
@media (max-width:900px){.proc-grid{grid-template-columns:1fr;gap:10px}.proc-detail{min-height:0}.road{height:220px}.rcar,.rcar img{width:100px}.proc-left h2{font-size:26px}.proc-detail h3{font-size:26px}.pd-num{font-size:44px}.proc-tabs{margin-top:18px}.proc-detail{margin-top:18px}.mile span{font-size:9px;letter-spacing:.1em}}
@media (max-width:900px){.pd-meta{display:none}.mile:not(.cur) span{opacity:0}.review span{display:none}.proc-road{margin-top:30px}}
.flips{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-block:clamp(40px,6vw,80px) clamp(80px,10vw,140px)}
@media (max-width:860px){.flips{grid-template-columns:1fr}}
.flip{perspective:1200px;background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer;height:240px}
.fi{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.flip:hover .fi,.flip:focus-visible .fi,.flip.on .fi{transform:rotateY(180deg)}
.ff,.fb{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;gap:12px}
.ff{background:linear-gradient(160deg,var(--graphite),var(--panel))}
.ff b{font:300 26px var(--f-display);font-variation-settings:"wdth" 112;margin-top:auto}
.ff small{font:600 10px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
.fb{background:linear-gradient(160deg,var(--red),var(--red-deep));transform:rotateY(180deg);border-color:var(--red)}
.fb .num{font-size:44px;font-weight:200;line-height:1}
.fb span{font-weight:300;font-size:15px;color:#F6DEDF}
.fb em{margin-top:auto;font:600 10px var(--f-body);font-style:normal;letter-spacing:.22em;text-transform:uppercase}


/* Commitments */
.commit{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:80px}
.commit > div{background:var(--night);padding:36px 30px;display:grid;gap:12px;align-content:start}
.commit h3{font-size:22px}
.commit p{color:var(--muted);font-weight:300;font-size:15px}
@media (max-width:860px){.commit{grid-template-columns:1fr}}

/* Owner */
.owner-sec{background:linear-gradient(180deg,var(--carbon),var(--night))}
.owner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.owner > *{min-width:0}
@media (max-width:860px){.owner{grid-template-columns:1fr}}
.plate{position:relative;aspect-ratio:4/5;max-width:480px;width:100%;margin:0 auto;transform-style:preserve-3d;--rx:0deg;--ry:0deg;transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s}
.plate .l{position:absolute}
.plate .l1{inset:0;background:linear-gradient(160deg,#211D1C,#110F0F);border:1px solid var(--line);box-shadow:0 60px 80px -40px rgba(0,0,0,.9)}
.plate .lp{left:1px;right:1px;top:1px;bottom:22%;overflow:hidden;transform:translateZ(1px)}
.plate .lp img{width:100%;height:100%;object-fit:cover;object-position:60% 18%;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.plate:hover .lp img{transform:scale(1.04)}
.plate .lp::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 70%,#141111 100%),linear-gradient(90deg,rgba(10,9,9,.35),transparent 45%)}
.plate .llogo{left:7%;top:6%;width:34%;transform:translateZ(80px)}
.plate .llogo img{width:100%;height:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.7))}
.plate .l3{left:8%;right:8%;bottom:6%;border-top:1px solid var(--line-2);padding-top:18px;transform:translateZ(50px)}
.plate .l3 b{display:block;font:300 26px var(--f-display);font-variation-settings:"wdth" 112}
.plate .l3 small{color:var(--muted);font-size:13px;letter-spacing:.04em}
.plate .l4{right:-5%;top:7%;background:var(--red);color:#fff;padding:10px 16px;font:600 11px var(--f-body);letter-spacing:.2em;transform:translateZ(110px)}
.owner-copy{display:grid;gap:22px}
.owner-copy p{color:var(--muted);font-weight:300;max-width:56ch}
.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:8px}
.facts div{padding:20px 16px 0 0}
.facts .num{font-size:36px;display:block;line-height:1.1}
.facts small{color:var(--muted);font-size:12px;line-height:1.35;display:block;margin-top:6px}
@media (max-width:480px){.facts{grid-template-columns:1fr}}

/* Press */
.press{border-block:1px solid var(--line);padding-block:36px;overflow:hidden;background:var(--night)}
.marquee{display:flex;gap:64px;width:max-content;animation:slide 40s linear infinite;align-items:center}
.marquee span{font:300 22px var(--f-display);font-variation-settings:"wdth" 118;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.marquee span::after{content:"";display:inline-block;width:6px;height:6px;background:var(--red-hot);margin-left:64px;vertical-align:middle;transform:rotate(45deg)}

/* Films: custom thumbnails */
.films{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:auto auto;gap:20px;perspective:1600px}
.films > a:first-child{grid-row:1/3}
.films > a:nth-child(4){grid-column:2/4}
.films > a:nth-child(4) .tn{aspect-ratio:32/9}
@media (max-width:1100px){.films{grid-template-columns:1fr 1fr}.films > a:first-child{grid-column:1/-1;grid-row:auto}.films > a:nth-child(4){grid-column:1/-1}}
@media (max-width:640px){.films{grid-template-columns:1fr}.films > a:nth-child(4) .tn{aspect-ratio:16/9}}
.film{display:flex;flex-direction:column;text-decoration:none;border:1px solid var(--line);background:var(--carbon);overflow:hidden;--rx:0deg;--ry:0deg;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s,border-color .4s;transform-style:preserve-3d}
.film:hover{border-color:var(--red)}
.tn{position:relative;aspect-ratio:16/9;overflow:hidden;background:radial-gradient(80% 90% at 75% 60%,rgba(184,39,46,.28),transparent 60%),linear-gradient(135deg,#1E1A19,#0B0A0A);isolation:isolate}
.films > a:first-child .tn{aspect-ratio:auto;flex:1;min-height:340px}
.tn::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(90deg,#000,transparent 70%);-webkit-mask-image:linear-gradient(90deg,#000,transparent 70%);z-index:-1}
.tn::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red-hot)}
.tn img{position:absolute;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.film:hover .tn img{transform:scale(1.06)}
.tn-robert{right:0;bottom:0;height:100%;width:58%;object-fit:cover;object-position:50% 20%;mask-image:linear-gradient(90deg,transparent,#000 35%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 35%)}
.tn-frame{right:-6%;bottom:-8%;width:78%;height:auto;opacity:.75}
.tn-brake{right:2%;bottom:-6%;height:105%;width:auto;opacity:.95}
.tn-trans{right:3%;top:50%;transform:translateY(-50%);height:120%;width:auto;opacity:.9}
.film:hover .tn .tn-trans{transform:translateY(-50%) scale(1.06)}
.tn-type{position:absolute;left:7%;top:50%;transform:translateY(-50%);display:grid;gap:6px;z-index:2;max-width:60%}
.tn-k{font:600 10px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--red-hot)}
.tn-type b{font:800 clamp(34px,5vw,74px) var(--f-display);font-variation-settings:"wdth" 125;line-height:.86;text-transform:uppercase;letter-spacing:-.01em;color:var(--text)}
.film:not(:first-child) .tn-type b{font-size:clamp(28px,2.8vw,44px)}
.tn-type b em{font-style:normal;color:var(--red-hot)}
.tn-type b.outline{color:transparent;-webkit-text-stroke:1.5px var(--text)}
.tn-type b.yr{color:var(--red-hot);font-weight:300;margin-top:-4px}
.tn-sub{font:300 15px var(--f-body);color:var(--muted);margin-top:6px}
.tn-time{position:absolute;left:7%;bottom:7%;font:600 10px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--text);border-left:2px solid var(--red-hot);padding-left:10px}
.tn-timer{position:absolute;left:60%;top:66%;width:24%;transform:translate(-50%,-50%);z-index:1}
.tn-timer circle{fill:rgba(10,9,9,.6);stroke:rgba(255,255,255,.15);stroke-width:2}
.tn-timer .sweep{fill:none;stroke:var(--red-hot);stroke-width:3;stroke-dasharray:80 234;stroke-linecap:round;transform-origin:60px 60px;animation:sweep 2.4s linear infinite}
.tn-timer text{fill:var(--text);font:700 18px var(--f-display);text-anchor:middle}
.tn-timer text.s{font:600 7px var(--f-body);letter-spacing:.2em;fill:var(--muted)}
@keyframes sweep{to{transform:rotate(360deg)}}
.play{position:absolute;right:5%;top:8%;width:54px;height:54px;border-radius:50%;background:var(--red);display:grid;place-items:center;z-index:3;box-shadow:0 10px 30px -6px rgba(224,67,74,.7);transition:transform .3s}
.play::after{content:"";border-left:14px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}
.film:hover .play{transform:scale(1.1)}
.yt{position:absolute;right:5%;bottom:7%;z-index:3;font:600 10px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--text);background:rgba(10,9,9,.7);border:1px solid var(--line-2);padding:6px 10px}
@media (max-width:600px){.tn-time{display:none}}
.fbody{padding:22px 26px 26px;display:grid;gap:8px;border-top:1px solid var(--line)}
.fbody .eyebrow{color:var(--red-hot)}
.fbody h3{font-size:clamp(20px,2vw,26px);font-weight:300}
.fbody p{color:var(--muted);font-size:14px;font-weight:300;max-width:52ch}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px}
.faq-grid > *{min-width:0}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}}
details{border-bottom:1px solid var(--line)}
details:first-child{border-top:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:24px 50px 24px 0;font:300 20px var(--f-display);font-variation-settings:"wdth" 108;position:relative}
summary::-webkit-details-marker{display:none}
summary::before,summary::after{content:"";position:absolute;right:8px;top:50%;width:16px;height:1px;background:var(--text);transition:transform .35s}
summary::after{transform:rotate(90deg)}
details[open] summary::after{transform:rotate(0)}
details[open] summary::before{background:var(--red-hot)}
details .a{padding:0 40px 26px 0;color:var(--muted);font-weight:300;display:grid;gap:10px}
details .a ul{margin:0;padding-left:18px}

/* Contact */
.contact{background:radial-gradient(60% 70% at 85% 30%,rgba(184,39,46,.14),transparent 70%),var(--carbon);border-top:1px solid var(--line)}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,96px)}
.contact-grid > *{min-width:0}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
form{display:grid;grid-template-columns:1fr 1fr;gap:28px 24px;margin-top:36px}
.full{grid-column:1/-1}
.field{display:grid;gap:4px}
.field label{font:600 11px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.field input,.field textarea{background:transparent;border:0;border-bottom:1px solid var(--line-2);color:var(--text);font:300 18px var(--f-body);padding:10px 0;border-radius:0;transition:border-color .3s}
.field textarea{min-height:90px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--red-hot)}
@media (max-width:560px){form{grid-template-columns:1fr}}
.form-msg{grid-column:1/-1;font-size:14px;color:var(--text);border-left:2px solid #4BB37A;padding-left:14px}
.form-msg.err{border-color:var(--red-hot)}
.info{display:grid;gap:0;align-content:start;border-top:1px solid var(--line)}
.info-row{display:flex;gap:16px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.info-row > div{min-width:0;flex:1}
.info-row small{display:block;font:600 11px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.info-row span{font:300 20px var(--f-display);font-variation-settings:"wdth" 108;user-select:all;overflow-wrap:anywhere}
.copy{flex:none;background:none;border:1px solid var(--line-2);color:var(--text);padding:8px 12px;font:600 10px var(--f-body);letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.copy:hover{border-color:var(--text)}

/* Footer */
footer{background:var(--night);border-top:1px solid var(--line);padding-block:64px 32px;font-size:14px;color:var(--muted)}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
@media (max-width:860px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot{grid-template-columns:1fr}}
footer img{height:56px;width:auto}
footer h4{margin:0 0 14px;font:600 11px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--text)}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer a{text-decoration:none}
footer a:hover{color:var(--text)}
.foot-base{margin-top:56px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12px;letter-spacing:.04em}

@keyframes slide{to{transform:translateX(-50%)}}

/* Exploded view hotspots */
.parts .xhot{position:absolute;z-index:5;width:28px;height:28px;margin:-14px 0 0 -14px;pointer-events:var(--hp,none);opacity:var(--ho2,0);transition:opacity .4s;text-decoration:none}
.parts .xhot i{position:absolute;inset:7px;border-radius:50%;background:var(--red-hot);box-shadow:0 0 0 0 rgba(224,67,74,.7);animation:xpulse 1.8s infinite}
@keyframes xpulse{to{box-shadow:0 0 0 16px rgba(224,67,74,0)}}
.parts .xtip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%,6px);min-width:200px;background:rgba(10,9,9,.94);border:1px solid var(--red);padding:12px 14px;display:grid;gap:4px;opacity:0;visibility:hidden;transition:.25s;text-align:left}
.parts .xtip small{font:600 10px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--red-hot)}
.parts .xtip b{font:300 18px var(--f-display);font-variation-settings:"wdth" 110;color:var(--text)}
.parts .xtip em{font:600 10px var(--f-body);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.parts .xhot:hover .xtip,.parts .xhot:focus-visible .xtip,.parts .xhot.show .xtip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.parts .xhot:hover i{background:#fff}
.xhint{position:absolute;left:50%;top:168px;transform:translateX(-50%);z-index:6;font:600 11px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--text);background:rgba(10,9,9,.7);border:1px solid var(--line-2);padding:8px 14px;opacity:var(--ho2,0);transition:opacity .4s;pointer-events:none;white-space:nowrap}
@media (max-width:600px){.parts .xtip{min-width:160px}.xhint{top:150px;font-size:9px;letter-spacing:.14em}}

/* Readable hero copy over the car (desktop) */
@media (min-width:901px){
  .phase{background:linear-gradient(180deg,rgba(10,9,9,.82),rgba(10,9,9,.62));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);padding:20px 22px;margin-top:4px}
  .phase p{color:#D7D0CE}
  .hero h1{text-shadow:0 2px 24px rgba(0,0,0,.6)}
  .car3d{top:auto;bottom:clamp(96px,13vh,128px);width:min(980px,84vw,calc((100vh - 400px)*2.03));transform:translateX(-50%) perspective(1600px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg))}
  .reflect{top:auto;bottom:calc(clamp(96px,13vh,128px) - 26px)}
  .ghost-word{top:56%}
}
/* gauges invite a hover */
.dial{cursor:pointer}
.rev-hint{display:block;text-align:center;margin-top:14px;font:600 10px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}

/* ===== Inner pages ===== */
header.nav.solid-always{background:rgba(10,9,9,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:var(--line)}
.menu a.cur{opacity:1;color:var(--red-hot)}
.crumbs{font:600 11px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);display:flex;gap:10px;flex-wrap:wrap}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--text)}

/* Page hero with a floating 3D object */
.phero{position:relative;overflow:hidden;padding-block:clamp(130px,16vh,180px) clamp(60px,8vw,110px);
  background:radial-gradient(55% 60% at 74% 55%,rgba(184,39,46,.17),transparent 70%),radial-gradient(80% 60% at 50% 110%,#231E1D,transparent 70%),linear-gradient(180deg,#0A0909,#110F0F)}
.phero .floor{bottom:-20%;height:60%}
.phero-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center;z-index:2}
.phero-grid > *{min-width:0}
@media (max-width:900px){.phero-grid{grid-template-columns:1fr}}
.phero h1{font-size:clamp(40px,5.4vw,84px);font-weight:200;font-variation-settings:"wdth" 118;line-height:1;margin-top:18px}
.phero h1 em{font-style:normal;color:var(--red-hot);font-weight:300}
.phero .lede{margin-top:22px}
.phero .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.object3d{position:relative;aspect-ratio:1.25;perspective:1400px;max-width:100%}
.object3d .spin{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--ox,8deg)) rotateY(var(--oy,-14deg));transition:transform .2s linear}
.object3d img{position:absolute;inset:6%;width:88%;height:88%;object-fit:contain;transform:translateZ(60px);filter:drop-shadow(0 50px 50px rgba(0,0,0,.75));animation:float 6s ease-in-out infinite}
.object3d .halo{position:absolute;left:12%;right:12%;bottom:6%;height:16%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(224,67,74,.45),transparent 70%);filter:blur(14px);transform:translateZ(-40px) rotateX(70deg)}
.object3d .ring{position:absolute;left:8%;right:8%;top:14%;bottom:14%;border:1px solid rgba(224,67,74,.35);border-radius:50%;transform:rotateX(72deg) translateZ(-60px);animation:ringspin 14s linear infinite}
.object3d .ring.r2{left:18%;right:18%;top:24%;bottom:24%;border-color:rgba(255,255,255,.12);animation-duration:22s;animation-direction:reverse}
.object3d .tagline{position:absolute;right:4%;top:10%;transform:translateZ(120px);font:600 10px var(--f-body);letter-spacing:.22em;text-transform:uppercase;border:1px solid var(--red);background:rgba(10,9,9,.75);padding:7px 11px}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -14px}}
@keyframes ringspin{to{rotate:360deg}}

/* Generic sections */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start}
.split > *{min-width:0}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.prose p{color:var(--muted);font-weight:300;margin-bottom:16px;max-width:60ch}
.prose h3{margin:28px 0 12px}
.ticks-list{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.ticks-list li{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line);color:var(--text);font-weight:300}
.ticks-list li::before{content:"";flex:none;width:8px;height:8px;margin-top:9px;background:var(--red-hot);transform:rotate(45deg)}
.ticks-list li b{font-weight:500}
.band{background:var(--carbon);border-block:1px solid var(--line)}
.stat-row{display:grid;grid-template-columns:repeat(var(--n,4),1fr);border-top:1px solid var(--line)}
.stat-row > div{padding:26px 22px 0 0}
.stat-row .num{font-size:clamp(36px,4.4vw,60px);line-height:1;display:block;font-weight:200}
.stat-row .num.r{color:var(--red-hot)}
.stat-row small{display:block;margin-top:10px;color:var(--muted);font-size:13px;max-width:24ch}
@media (max-width:760px){.stat-row{grid-template-columns:1fr 1fr;row-gap:24px}}

/* Topic tabs (folded sub-pages) */
.topics{display:grid;grid-template-columns:280px 1fr;gap:40px;align-items:start}
.topics > *{min-width:0}
@media (max-width:860px){.topics{grid-template-columns:1fr}}
.topic-list{display:grid;border-top:1px solid var(--line)}
.topic-list button{text-align:left;background:none;border:0;border-bottom:1px solid var(--line);color:var(--muted);font:300 18px var(--f-display);font-variation-settings:"wdth" 108;padding:18px 0;cursor:pointer;display:flex;justify-content:space-between;gap:12px;transition:color .3s}
.topic-list button::after{content:"→";opacity:0;transition:opacity .3s,transform .3s;transform:translateX(-6px)}
.topic-list button[aria-selected="true"]{color:var(--text)}
.topic-list button[aria-selected="true"]::after{opacity:1;transform:none;color:var(--red-hot)}
.topic-panel{perspective:1400px}
.topic-card{border:1px solid var(--line);background:linear-gradient(160deg,var(--graphite),var(--panel));padding:clamp(24px,4vw,44px);transform-origin:left center;animation:topicIn .6s cubic-bezier(.2,.8,.2,1)}
.topic-card h3{font-size:clamp(26px,3vw,38px);font-weight:300}
.topic-card p{color:var(--muted);font-weight:300;margin-top:14px;max-width:60ch}
@keyframes topicIn{from{transform:rotateY(-14deg) translateX(-20px);opacity:.3}to{transform:none;opacity:1}}

/* Steps with 3D stack */
.stack-steps{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:16px;perspective:1600px}
@media (max-width:900px){.stack-steps{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.stack-steps{grid-template-columns:1fr}}
.sstep{position:relative;border:1px solid var(--line);background:var(--carbon);padding:26px 22px;min-height:200px;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.2,1),border-color .4s}
.sstep:hover{transform:translateZ(40px) rotateX(6deg);border-color:var(--red)}
.sstep .num{font-size:14px;color:var(--red-hot);letter-spacing:.1em}
.sstep h3{font-size:22px;margin:12px 0 8px}
.sstep p{color:var(--muted);font-size:14px;font-weight:300}
.sstep::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--red-hot);transform:scaleX(0);transform-origin:left;transition:transform .5s}
.sstep:hover::after,.sstep.on::after{transform:scaleX(1)}
.sstep.on{border-color:var(--red)}

/* History timeline in 3D */
.hist{perspective:1600px;margin-top:20px}
.hist-track{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;transform:rotateX(14deg);transform-style:preserve-3d}
@media (max-width:860px){.hist-track{grid-template-columns:1fr;transform:none}}
.hist-card{position:relative;border:1px solid var(--line);background:linear-gradient(160deg,#211C1B,#121010);padding:30px;min-height:230px;transform-style:preserve-3d;transition:transform .6s}
.hist-card:hover{transform:translateZ(50px)}
.hist-card .yr{font:200 clamp(44px,5vw,72px) var(--f-display);font-variation-settings:"wdth" 120;line-height:1;color:var(--red-hot);display:block;transform:translateZ(30px)}
.hist-card h3{margin:14px 0 8px}
.hist-card p{color:var(--muted);font-weight:300;font-size:15px}

/* CTA band */
.cta-band{position:relative;overflow:hidden;border:1px solid var(--line);background:radial-gradient(60% 120% at 85% 50%,rgba(184,39,46,.3),transparent 70%),var(--carbon);padding:clamp(32px,5vw,64px);display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(28px,3.4vw,46px);max-width:20ch}
.cta-band .cta-row{display:flex;gap:14px;flex-wrap:wrap}

/* Other services strip */
.others{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;perspective:1400px}
@media (max-width:1000px){.others{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){.others{grid-template-columns:1fr 1fr}}
.other{position:relative;border:1px solid var(--line);background:var(--carbon);text-decoration:none;padding:18px;display:flex;flex-direction:column;gap:10px;min-height:190px;transition:transform .5s,border-color .4s;overflow:hidden}
.other:hover{transform:translateZ(30px) rotateX(5deg);border-color:var(--red)}
.other img{height:100px;width:100%;object-fit:contain;transition:transform .7s}
.other:hover img{transform:scale(1.08)}
.other b{font:300 16px var(--f-display);font-variation-settings:"wdth" 108;line-height:1.2}

/* Gauge (labor page) */
.solo-gauge{max-width:460px;margin:0 auto;width:100%}
.solo-gauge .dial{width:100%}

/* Invoice stack (parts reimbursement) */
.invoices{position:relative;height:420px;perspective:1300px}
.inv-stack{position:absolute;left:50%;top:56%;width:min(300px,70%);aspect-ratio:.77;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(58deg) rotateZ(-28deg)}
.sheet{position:absolute;inset:0;background:linear-gradient(180deg,#F3EFEE,#DCD5D3);border:1px solid #BDB4B1;transform:translateZ(calc(var(--i)*3px));box-shadow:0 1px 0 rgba(0,0,0,.2)}
.sheet::before{content:"";position:absolute;inset:12% 12% auto;height:6%;background:#2B2724;opacity:.7}
.sheet::after{content:"";position:absolute;left:12%;right:12%;top:28%;bottom:16%;background:repeating-linear-gradient(180deg,rgba(43,39,36,.35) 0 2px,transparent 2px 12px)}
.sheet.top::before{background:var(--red)}
.inv-count{position:absolute;left:0;top:0;display:grid;gap:4px;z-index:3}
.inv-count .num{font-size:clamp(48px,6vw,84px);font-weight:200;line-height:1}
.inv-count small{color:var(--muted);font-size:13px;max-width:26ch}

/* Markup slider (parts markup) */
.markup{border:1px solid var(--line);background:var(--carbon);padding:clamp(24px,4vw,44px);display:grid;gap:26px}
.markup .bars{height:260px}

/* Checklist (consultants) */
.checklist{display:grid;gap:12px}
.check{display:flex;gap:16px;align-items:center;border:1px solid var(--line);background:var(--carbon);padding:18px 20px;cursor:pointer;color:var(--text);font:300 17px var(--f-body);text-align:left;transition:border-color .3s,transform .4s,background .3s;width:100%}
.check:hover{border-color:var(--line-2);transform:translateX(6px)}
.check .box{flex:none;width:24px;height:24px;border:1px solid var(--line-2);display:grid;place-items:center;transition:all .3s}
.check[aria-pressed="true"]{border-color:var(--red);background:linear-gradient(90deg,rgba(184,39,46,.18),transparent)}
.check[aria-pressed="true"] .box{background:var(--red);border-color:var(--red)}
.check[aria-pressed="true"] .box::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.verdict{border-left:2px solid var(--red-hot);padding:6px 0 6px 18px;margin-top:10px}
.verdict b{font:300 26px var(--f-display);font-variation-settings:"wdth" 110;display:block}
.verdict span{color:var(--muted);font-size:14px}

/* Audit fan (dealer services) */
.fan{position:relative;height:420px;perspective:1400px}
.fan .ro{position:absolute;left:50%;top:50%;width:min(260px,60%);aspect-ratio:.8;margin:0;padding:22px;background:linear-gradient(170deg,#1F1B1A,#121010);border:1px solid var(--line-2);transform-origin:50% 120%;transition:transform .9s cubic-bezier(.2,.8,.2,1);display:block}
.fan .ro b{font:600 10px var(--f-body);letter-spacing:.2em;color:var(--red-hot);display:block}
.fan .ro i{display:block;height:6px;background:rgba(255,255,255,.12);margin-top:14px}
.fan .ro i:nth-of-type(2){width:70%}.fan .ro i:nth-of-type(3){width:85%}.fan .ro i:nth-of-type(4){width:55%}
.fan .ro .ok{position:absolute;right:16px;bottom:16px;width:34px;height:34px;border-radius:50%;background:var(--red);display:grid;place-items:center;opacity:0;transition:opacity .4s .5s}
.fan .ro .ok::after{content:"";width:8px;height:14px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-2px)}
.fan.open .ro .ok{opacity:1}

/* Service ring carousel (hub) */
.sring-stage{height:520px;perspective:1600px;display:grid;place-items:center;touch-action:pan-y}
.sring{position:relative;width:300px;height:400px;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.sface{position:absolute;inset:0;background:linear-gradient(180deg,var(--graphite),var(--panel));border:1px solid var(--line);padding:26px;display:flex;flex-direction:column;gap:12px;text-decoration:none;backface-visibility:hidden;transition:opacity .6s,border-color .4s}
.sface:hover{border-color:var(--red)}
.sface img{height:150px;width:100%;object-fit:contain;margin-top:auto}
.sface h3{font-size:24px;font-weight:300}
.sface p{color:var(--muted);font-size:14px;font-weight:300}
.sring-ctrl{display:flex;justify-content:center;gap:10px;margin-top:6px}
.sring-ctrl button{width:52px;height:52px;border:1px solid var(--line-2);background:transparent;color:var(--text);font-size:18px;cursor:pointer}
.sring-ctrl button:hover{border-color:var(--text)}
@media (max-width:600px){.sring{width:220px;height:330px}.sface img{height:110px}.sring-stage{height:420px}}

/* Career deck (about) */
.deck-stage{position:relative;height:420px;perspective:1500px}
.deck{position:absolute;left:50%;top:50%;width:min(320px,80%);height:220px;transform-style:preserve-3d;transform:translate(-50%,-50%)}
.role{position:absolute;inset:0;border:1px solid var(--line-2);background:linear-gradient(160deg,#241F1E,#121010);padding:26px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .9s,border-color .4s}
.role span{font:600 10px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--red-hot)}
.role b{font:300 30px var(--f-display);font-variation-settings:"wdth" 114}
.role.front{border-color:var(--red)}
.miles{display:grid;border-left:1px solid var(--line-2);margin-left:6px}
.mile-item{position:relative;padding:0 0 34px 34px}
.mile-item::before{content:"";position:absolute;left:-6px;top:6px;width:11px;height:11px;border-radius:50%;background:var(--night);border:1px solid var(--red-hot)}
.mile-item .yr{font:300 15px var(--f-display);letter-spacing:.12em;color:var(--red-hot)}
.mile-item h3{margin:6px 0 6px}
.mile-item p{color:var(--muted);font-weight:300;max-width:56ch}
.clients{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.clients span{border:1px solid var(--line-2);padding:12px 18px;font:300 18px var(--f-display);font-variation-settings:"wdth" 116;letter-spacing:.04em;transform:perspective(600px) rotateY(-10deg)}
.clients span:nth-child(even){transform:perspective(600px) rotateY(10deg)}

/* States page */
.state-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:26px}
.state-tools input{background:transparent;border:0;border-bottom:1px solid var(--line-2);color:var(--text);font:300 18px var(--f-body);padding:10px 0;min-width:0;flex:1 1 220px}
.state-tools input:focus{outline:none;border-color:var(--red-hot)}
.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;perspective:1600px}
.scard{border:1px solid var(--line);background:var(--carbon);padding:18px 18px 16px;display:flex;flex-direction:column;gap:6px;cursor:pointer;text-align:left;color:var(--text);font:inherit;transition:transform .45s,border-color .3s}
.scard:hover,.scard.on{transform:translateZ(30px) rotateX(6deg);border-color:var(--red)}
.scard .ab{font:200 34px var(--f-display);font-variation-settings:"wdth" 122;line-height:1;color:var(--red-hot)}
.scard b{font-weight:500}
.scard small{color:var(--muted);font-size:12px}
.scard.ask .ab{color:var(--muted)}
.legal-note{font-size:13px;color:var(--dim);border-left:2px solid var(--red);padding-left:14px;max-width:80ch}
.state-card .cite{font:300 20px var(--f-display);font-variation-settings:"wdth" 108}

/* Contact: 3D business card */
.bcard-stage{perspective:1400px;display:grid;place-items:center;padding-block:20px}
.bcard{position:relative;width:min(440px,100%);aspect-ratio:1.75;transform-style:preserve-3d;animation:cardspin 10s ease-in-out infinite;cursor:pointer}
.bcard:hover{animation-play-state:paused}
.bside{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--line-2);padding:28px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 50px 80px -30px rgba(0,0,0,.9)}
.bfront{background:linear-gradient(150deg,#221D1C,#0D0B0B);align-items:flex-start}
.bfront img{width:46%;height:auto}
.bfront small{font:600 10px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.bback{background:linear-gradient(150deg,var(--red),var(--red-deep));transform:rotateY(180deg)}
.bback b{font:300 26px var(--f-display);font-variation-settings:"wdth" 112}
.bback span{font-size:14px;color:#F6DEDF;display:block}
@keyframes cardspin{0%,40%{transform:rotateY(-14deg) rotateX(8deg)}50%,90%{transform:rotateY(166deg) rotateX(8deg)}100%{transform:rotateY(346deg) rotateX(8deg)}}
.pin-map{position:relative;height:260px;perspective:900px;margin-top:30px;border:1px solid var(--line);overflow:hidden;background:var(--carbon)}
.pin-map .plane{position:absolute;inset:-20% -10%;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:36px 36px;transform:rotateX(62deg);transform-origin:center 70%}
.pin-map .pin{position:absolute;left:52%;top:46%;width:22px;height:22px;margin:-22px 0 0 -11px;border-radius:50% 50% 50% 0;background:var(--red-hot);transform:rotate(-45deg);animation:pinbob 2.4s ease-in-out infinite;box-shadow:0 0 30px rgba(224,67,74,.6)}
.pin-map .pulse{position:absolute;left:52%;top:52%;width:120px;height:46px;margin:-23px 0 0 -60px;border-radius:50%;border:1px solid var(--red-hot);animation:pulsering 2.4s ease-out infinite}
.pin-map .lbl{position:absolute;left:calc(52% + 26px);top:30%;font:600 10px var(--f-body);letter-spacing:.2em;text-transform:uppercase;background:rgba(10,9,9,.8);border:1px solid var(--line-2);padding:6px 10px}
@keyframes pinbob{50%{translate:0 -8px}}
@keyframes pulsering{from{transform:scale(.3);opacity:1}to{transform:scale(1.4);opacity:0}}

.split .stat-row .num{font-size:clamp(28px,3vw,44px)}
.split .stat-row > div{padding-right:14px}
.fan,.invoices,.deck-stage{overflow:hidden}
@media (max-width:600px){.fan,.invoices,.deck-stage{height:320px}.split .stat-row{grid-template-columns:1fr 1fr}}
.sring-stage{overflow:hidden}

/* Case study */
.cs-hero{text-align:center}
.cs-hero .phero-grid{grid-template-columns:1fr}
.big48{position:relative;display:inline-block;font:200 clamp(110px,22vw,320px) var(--f-display);font-variation-settings:"wdth" 118;line-height:.9;letter-spacing:-.03em;color:var(--text);
  text-shadow:1px 1px 0 #6E2226,2px 2px 0 #64191D,3px 3px 0 #5A1519,4px 4px 0 #501114,5px 5px 0 #460E11,6px 6px 0 #3C0B0E,8px 10px 30px rgba(0,0,0,.8);
  transform:perspective(1200px) rotateX(var(--bx,10deg)) rotateY(var(--by,0deg));transition:transform .2s linear}
.big48 .u{font-size:.42em;color:var(--red-hot);vertical-align:.9em;margin-left:.04em}
.big48 .d{font-size:.5em;color:var(--red-hot);vertical-align:.7em;margin-right:.02em}
.cs-sub{font:300 clamp(18px,2vw,26px) var(--f-display);font-variation-settings:"wdth" 110;margin-top:18px}
.cs-meta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.cs-meta span{border:1px solid var(--line-2);padding:9px 14px;font:600 11px var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.cs-meta span b{color:var(--text);font-weight:600}
.layers{position:relative;height:520px;perspective:1600px}
.layers-in{position:absolute;left:50%;top:50%;width:min(420px,78%);aspect-ratio:1.45;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(58deg) rotateZ(-32deg)}
.lyr{position:absolute;inset:0;border:1px solid var(--line-2);background:linear-gradient(150deg,rgba(40,34,33,.94),rgba(18,16,16,.94));padding:18px 20px;transform:translateZ(calc(var(--i)*var(--gap,10px)));transition:transform 1s cubic-bezier(.2,.8,.2,1),border-color .4s,background .4s;cursor:pointer}
.lyr b{font:600 11px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:block}
.lyr span{font:300 20px var(--f-display);font-variation-settings:"wdth" 110;color:var(--text)}
.lyr.on{border-color:var(--red-hot);background:linear-gradient(150deg,rgba(184,39,46,.92),rgba(103,24,27,.92))}
.lyr.on b{color:#fff}
.layers.open .lyr{--gap:62px}
@media (max-width:600px){.layers{height:400px}.layers.open .lyr{--gap:40px}.lyr span{font-size:15px}}
.addr{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.addr > div{background:var(--night);padding:30px 26px;display:grid;gap:10px;align-content:start}
.addr .num{font-size:14px;color:var(--red-hot);letter-spacing:.1em}
.addr h3{font-size:21px}
.addr p{color:var(--muted);font-weight:300;font-size:15px}
@media (max-width:860px){.addr{grid-template-columns:1fr}}
.nation{position:relative;height:340px;perspective:1100px;overflow:hidden}
.nation .usmap{transform:rotateX(58deg) rotateZ(-12deg)}
.nation .st{cursor:default}
.nation .st.lit{background:var(--red);color:#fff;border-color:var(--red-hot);transform:translateZ(18px);box-shadow:0 3px 0 var(--red-deep),0 16px 24px -8px rgba(224,67,74,.5)}
.quote{border-left:2px solid var(--red-hot);padding:6px 0 6px 26px;font:200 clamp(24px,3vw,40px) var(--f-display);font-variation-settings:"wdth" 112;line-height:1.25;max-width:28ch}
.quote cite{display:block;margin-top:16px;font:600 11px var(--f-body);font-style:normal;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.vfeature{display:grid;grid-template-columns:1.3fr 1fr;border:1px solid var(--line);text-decoration:none;background:var(--carbon);transition:border-color .4s}
.vfeature:hover{border-color:var(--red)}
.vfeature > *{min-width:0}
.vfeature .tn{aspect-ratio:16/9}
.vfeature .fbody{border-top:0;border-left:1px solid var(--line);align-content:center}
@media (max-width:860px){.vfeature{grid-template-columns:1fr}.vfeature .fbody{border-left:0;border-top:1px solid var(--line)}}
.tn48{position:absolute;left:7%;top:50%;transform:translateY(-50%);font:800 clamp(56px,9vw,130px) var(--f-display);font-variation-settings:"wdth" 125;line-height:.85;color:var(--text);z-index:2}
.tn48 em{font-style:normal;color:var(--red-hot)}
.tn48 small{display:block;font:600 11px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--red-hot);margin-bottom:10px}
#layerSteps .sstep{min-height:0;padding:16px 20px;cursor:pointer}#layerSteps .sstep h3{font-size:19px;margin:6px 0 4px}#layerSteps .sstep:hover{transform:translateX(6px)}

/* Mega menu with parents and children */
.mega{width:min(980px,94vw);grid-template-columns:repeat(3,1fr);row-gap:26px}
.mega h4 a{display:inline;padding:0;font:inherit;letter-spacing:inherit;color:var(--red-hot);opacity:1;text-decoration:none}
.mega h4 a:hover{color:var(--text)}
.mega .mega-all{grid-column:1/-1;font:600 11px var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--text);opacity:1;border-bottom:1px solid var(--line);padding-bottom:12px}
@media (max-width:1080px){.mega{width:auto;grid-template-columns:1fr;row-gap:14px}}
/* Services map */
.tree{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;perspective:1600px}
@media (max-width:900px){.tree{grid-template-columns:1fr 1fr}}@media (max-width:560px){.tree{grid-template-columns:1fr}}
.tree-col{border:1px solid var(--line);background:var(--carbon);display:flex;flex-direction:column;transition:transform .5s,border-color .4s}
.tree-col:hover{transform:translateZ(26px) rotateX(4deg);border-color:var(--red)}
.tree-parent{display:flex;align-items:center;gap:14px;padding:18px;text-decoration:none;border-bottom:1px solid var(--line)}
.tree-parent img{width:84px;height:60px;object-fit:contain;flex:none}
.tree-parent b{font:300 19px var(--f-display);font-variation-settings:"wdth" 110;line-height:1.2}
.tree-kid{display:flex;justify-content:space-between;gap:10px;padding:12px 18px;text-decoration:none;color:var(--muted);font-size:14px;border-bottom:1px solid var(--line)}
.tree-kid:last-child{border-bottom:0}
.tree-kid::after{content:"→";color:var(--red-hot);opacity:0;transition:opacity .3s}
.tree-kid:hover{color:var(--text)}.tree-kid:hover::after{opacity:1}
.sface{text-decoration:none}
#rcRate{font-size:clamp(40px,5vw,72px)!important}.tree-col{min-height:0}

/* ===== Responsive pass: tablets and phones ===== */
@media (max-width:1080px){
  .menu{background:var(--night)!important;max-height:calc(100vh - 76px);max-height:calc(100svh - 76px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 30px 40px rgba(0,0,0,.6)}
  .menu a,.menu button{padding:14px 4px;min-height:44px}
  .mega a{padding:10px 0}
  .mega h4{margin-top:6px}
}
@media (max-width:900px){
  section{padding-block:clamp(56px,12vw,88px)}
  .head{margin-bottom:32px;gap:16px}
  .phero{padding-block:120px 48px}
  .phero .object3d{max-width:440px;margin:8px auto 0;width:100%}
  .split{gap:36px}
  .faq-grid{gap:28px}
  .contact-grid{gap:44px}
  .owner{gap:40px}
  .map-grid{gap:20px}
}
@media (max-width:600px){
  .wrap{padding-inline:20px}
  h2{font-size:clamp(28px,8vw,38px)}
  .phero h1{font-size:clamp(36px,11vw,52px)}
  .lede{font-size:16px}
  .eyebrow{font-size:11px;letter-spacing:.2em}
  .btn{padding:16px 22px;min-height:48px}
  .cta-row .btn,.phero .cta-row .btn{flex:1 1 100%}
  .stat-row{grid-template-columns:1fr 1fr;row-gap:22px}
  .stat-row > div{padding:20px 12px 0 0}
  .stat-row .num{font-size:clamp(30px,9vw,40px)}
  /* home hero */
  .hero h1{font-size:clamp(34px,10vw,46px)}
  .hero-copy{top:96px}
  .oob{top:52%;width:94vw}
  .reflect{top:calc(52% + 94vw*.235)}
  .ghost-word{font-size:34vw;top:40%}
  .hero-bar .cell{padding:12px 14px}
  .hero-bar .num{font-size:20px}
  .hero-bar small{font-size:11px}
  /* gap gauges */
  .cluster{margin-top:36px;row-gap:28px}
  .gap-core > .num{font-size:64px}
  .bezel figcaption .num{font-size:24px}
  .bezel figcaption small{font-size:8px;letter-spacing:.14em}
  .ro{grid-template-columns:96px 1fr;gap:16px;padding:24px 0}
  .ro svg{width:96px;height:96px}
  .ro-txt{top:24px;width:96px;height:96px}
  .ro-txt .num{font-size:30px}
  /* lineup */
  .model{flex-basis:78vw;min-height:440px;padding:26px 22px}
  .model .art{height:190px}
  /* process road: keep signs off the text */
  .proc-stage{padding-block:64px}
  .mile span{display:none!important}
  .road{height:180px;transform:rotateX(58deg) rotateZ(-14deg)}
  .proc-road{margin-top:16px}
  .proc-tabs button{width:42px;height:42px}
  .proc-detail{padding-left:18px;min-height:0}
  .road-ends{margin-top:8px}
  .proc-hint{position:static;transform:none;text-align:center;margin-top:18px}
  /* flips, owner plate, films */
  .flip{height:200px}
  .ff,.fb{padding:22px}
  .plate .l4{right:10px;top:10px}
  .plate .llogo{width:40%}
  .facts{grid-template-columns:1fr 1fr 1fr;gap:0}
  .facts .num{font-size:28px}
  .films > a:first-child .tn{min-height:240px}
  .tn-type b{font-size:clamp(28px,9vw,40px)!important}
  .play{width:46px;height:46px}
  /* calculator */
  .config .inputs,.config .out{padding:24px 20px}
  .big .num{font-size:clamp(44px,13vw,64px)}
  .bars{height:200px}
  .bar-pair{height:150px}
  /* map + state card */
  .state-card .abbr{font-size:72px}
  .state-card .btn{width:100%}
  .map-stage{padding-block:0;margin-inline:-8px}
  /* forms and contact */
  form{gap:22px}
  .info-row span{font-size:17px}
  .copy{min-height:40px;padding:8px 14px}
  .pin-map{height:200px}
  .bcard{width:100%}
  .bside{padding:20px}
  .bback b{font-size:22px}
  /* inner pieces */
  .others{grid-template-columns:1fr 1fr!important}
  .other{min-height:170px;padding:14px}
  .other img{height:80px}
  .topic-list button{padding:16px 0;font-size:17px}
  .sstep{min-height:0;padding:22px 20px}
  .cta-band{padding:28px 22px}
  .tree-parent img{width:64px;height:48px}
  .tree-kid{padding:14px 18px}
  .hist-card{min-height:0;padding:24px}
  .layers{height:340px}
  .layers-in{width:84%}
  .addr > div{padding:24px 20px}
  .big48{font-size:clamp(96px,30vw,140px)}
  .cs-meta span{padding:8px 10px;font-size:10px;letter-spacing:.12em}
  .quote{padding-left:18px}
  .vfeature .tn{min-height:200px}
  .tn48{font-size:clamp(48px,16vw,72px)}
  footer{padding-block:48px 28px}
  .foot{gap:30px}
  .foot-base{flex-direction:column;gap:8px}
}
@media (max-width:380px){
  .wrap{padding-inline:16px}
  .hero-bar .wrap{grid-template-columns:1fr 1fr}
  .others{grid-template-columns:1fr!important}
  .proc-tabs{gap:4px}.proc-tabs button{width:40px;height:40px}
  .facts{grid-template-columns:1fr}
  .cs-meta span{flex:1 1 100%}
}
/* comfortable tap targets everywhere */
.crumbs a{display:inline-flex;align-items:center;min-height:36px}
.link{min-height:44px}
footer ul a{display:inline-block;padding:6px 0}
.crumbs{align-items:center;row-gap:2px}
.crumbs span{line-height:36px}
@media (max-width:900px){.proc-stage{flex-direction:column;align-items:stretch}.proc-hint{position:static;transform:none;text-align:center;margin-top:16px}}
@media (max-width:600px){.oob{top:47%}.reflect{top:calc(47% + 94vw*.235)}.crumbs{font-size:10px;letter-spacing:.16em}.crumbs a{min-height:32px}.crumbs span{line-height:32px}}
.vfeature{overflow:hidden}
@media (max-width:600px){.vfeature .tn{min-height:0}}
.copy{min-height:40px}
@media (max-width:900px){.mile span{display:none!important}.road{height:220px}.proc-road{margin-top:20px}}

/* Mobile ride captions: tell phone visitors the hero is a scroll ride and what is happening */
.mcap{display:none}
@media (max-width:700px){
  .mcap{display:block;position:absolute;left:0;right:0;bottom:calc(var(--hbh,150px) + 16px);z-index:7;text-align:center;pointer-events:none;padding:0 16px}
  .mcap span{display:inline-flex;align-items:center;gap:10px;max-width:100%;font:600 11px var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--text);background:rgba(10,9,9,.78);border:1px solid var(--line-2);padding:10px 16px;border-radius:999px;box-shadow:0 10px 30px -10px rgba(0,0,0,.8);transition:opacity .3s,transform .3s}
  .mcap span.out{opacity:0;transform:translateY(8px)}
  .mcap i{font-style:normal;color:var(--red-hot);font-size:14px;letter-spacing:0;animation:mbob 1.3s ease-in-out infinite}
  .mcap b{font-weight:600;color:var(--red-hot)}
}
@keyframes mbob{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
.reduce .mcap{display:none}

/* State map click fix: the tilted map's own plane sits level with its tiles, so the browser can hand clicks to the map instead of the tile.
   Only the tiles take the pointer, and a hovered tile keeps a hit area under where it rose from. */
.usmap{pointer-events:none}
.usmap .st{pointer-events:auto;position:relative}
.st:hover::after{content:"";position:absolute;left:0;right:0;top:0;bottom:-20px}
.st.on:hover::after{bottom:-32px}

/* Hover only previews a state (soft outline); solid red means it is the picked state */
.st:hover:not(.on){background:#2A1F1F;color:#fff;border-color:rgba(224,67,74,.75);box-shadow:0 3px 0 #0C0B0B,0 12px 22px -8px rgba(224,67,74,.35)}

/* Lead form spam trap (hidden from people) */
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
#leadForm{position:relative}
button[disabled]{opacity:.6;cursor:wait}
/* Legal + thank-you pages */
.legal{max-width:78ch}
.legal h2{font-size:clamp(22px,2.4vw,30px);margin:42px 0 14px}
.legal p,.legal li{color:var(--muted);font-weight:300;margin-bottom:14px}
.legal ul{padding-left:20px;margin:0 0 14px}
.legal a{color:var(--text)}

/* Tap-to-call links */
a.tel{color:inherit;text-decoration:underline;text-decoration-color:rgba(224,67,74,.65);text-underline-offset:3px}
.info-row span a.tel,.bside a.tel{text-decoration:none}
/* SMS consent box */
.field label.check{display:flex;gap:12px;align-items:flex-start;font:300 13px/1.55 var(--f-body);letter-spacing:0;text-transform:none;color:var(--muted);cursor:pointer}
.check input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--red-hot);cursor:pointer}
.check a{color:var(--text)}
