@font-face{font-family:Sora;src:url("../fonts/sora-latin-300-normal.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:Sora;src:url("../fonts/sora-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Sora;src:url("../fonts/sora-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Sora;src:url("../fonts/sora-latin-800-normal.woff2") format("woff2");font-weight:800;font-display:swap}
:root{--blue:#0558a8;--yellow:#ffd200;--text:#0f1b3d;--muted:#4a5f86;--border:#d7e6f7}
*{box-sizing:border-box}
body{margin:0;background:#f3f8fe;color:var(--text);font:400 15px/1.5 "Segoe UI",system-ui,sans-serif}
h1,h2,h3,p{margin:0}
a{color:var(--blue);text-decoration:none}
a:focus-visible{outline:3px solid #0a84ff;outline-offset:5px}
.container{width:100%;max-width:none;margin:0}
.skip-link{position:absolute;z-index:5;top:12px;left:16px;padding:10px 16px;background:#fff;border-radius:8px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.hero{height:340px;position:relative;isolation:isolate;overflow:hidden;background:var(--blue)}
.hero-photo{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:60% 45%;transform-origin:center}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(105deg,#0a3f8f 0%,#0558a8 34%,rgb(5 88 168 / 85%) 42%,transparent 58%)}
.hero::after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 35%,rgb(255 255 255 / 6%) 35% 40%,transparent 40% 44%,rgb(255 255 255 / 6%) 44% 48%,transparent 48%)}
.hero-content{height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0 60px;position:relative}
.hero-logo{width:290px;height:auto;margin-bottom:12px;display:block}
h1{font-family:Sora,"Segoe UI",sans-serif;letter-spacing:-1.2px;line-height:1.18;color:#fff}
h1>span{display:block;font-size:46px;font-weight:300}
h1>strong{display:block;font-size:54px;font-weight:800}
.hero-subtitle{display:flex;align-items:center;gap:16px;color:#fff;font-size:15px;letter-spacing:.35em;text-transform:uppercase;margin-top:16px;font-weight:600}
.hero-subtitle::before{content:"";height:4px;width:56px;flex-shrink:0;background:var(--yellow);border-radius:4px;transform-origin:left}
.portal-main{padding:16px 40px 24px;min-height:calc(100vh - 424px)}
.sections-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.section-card{border:1px solid var(--border);border-radius:16px;box-shadow:0 6px 22px rgb(5 88 168 / 7%);background:#fff;overflow:hidden;min-width:0}
.section-header{display:flex;align-items:center;gap:18px;height:115px;padding:13px 20px;position:relative;background:linear-gradient(135deg,#0558a8,#0a84ff);color:#fff;isolation:isolate}
.section-symbol{display:grid;place-items:center;width:88px;height:88px;flex:0 0 88px;border-radius:50%;background:#0a3f8f;color:#fff;border:1px solid rgb(255 255 255 / 20%)}
.icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}
.section-symbol .icon{width:45px;height:45px}
.section-heading{min-width:0;position:relative;z-index:1}
.section-title{font-family:Sora,"Segoe UI",sans-serif;font-size:32px;font-weight:800;line-height:1.25;letter-spacing:-1px}
.section-subtitle{font-size:14px;letter-spacing:.2em;text-transform:uppercase;margin-top:7px}
.section-subtitle::after{content:"";display:block;width:48px;height:4px;background:var(--yellow);border-radius:3px;margin-top:8px}
.section-decoration{position:absolute;right:8px;bottom:0;width:145px;height:112px;opacity:.35;z-index:-1;pointer-events:none}
.tone-yellow{border-color:#f0e3b9}
.tone-yellow .section-header{background:linear-gradient(135deg,#fff3c4,#ffe27a);color:var(--text)}
.tone-yellow .section-symbol{background:#ffd200;color:var(--text)}
.section-body{padding:18px;display:grid;gap:16px}
.status{display:inline-flex;align-items:center;gap:7px;border-radius:7px;padding:5px 10px;font-size:13px;font-weight:700;line-height:1.3;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}
.status .icon{width:14px;height:14px}
.status-available{background:#e6f9ee;color:#16a34a}
.status-soon{background:#e7edf5;color:#61728c}
.status-dot{width:7px;height:7px;border-radius:50%;background:#16a34a;position:relative}
.section-heading>.status{margin-top:8px;background:rgb(255 255 255 / 24%);color:inherit}
.panel-card{position:relative;border:1px solid var(--border);border-radius:12px;display:flex;align-items:center;gap:24px;min-height:216px;padding:48px 22px 24px;background:#fff}
.panel-card>.status{position:absolute;right:14px;top:13px}
.panel-card.is-available{border-color:#54a9ed;box-shadow:0 3px 12px rgb(5 88 168 / 7%)}
.panel-symbol{width:140px;height:140px;flex:0 0 140px;display:grid;place-items:center;border-radius:50%;background:#eef5fd;color:var(--blue);overflow:hidden}
.vehicle-art{display:block;width:100%;height:100%;object-fit:contain}
.panel-symbol .icon{width:64px;height:64px}
.panel-copy{min-width:0;flex:1}
.panel-name{font-family:Sora,"Segoe UI",sans-serif;font-size:28px;font-weight:800;letter-spacing:-.8px;line-height:1.3}
.panel-description{font-size:17px;line-height:1.45;color:var(--muted);margin-top:7px}
.access-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;border-radius:10px;background:linear-gradient(135deg,#0558a8,#0a84ff);color:#fff;font-size:18px;font-weight:700;padding:0 20px;margin-top:16px;box-shadow:0 4px 12px rgb(5 88 168 / 18%)}
.access-link .icon{width:21px;height:21px}
.is-unavailable{background:#f5f7fa}
.is-unavailable .vehicle-art{opacity:.85}
.modules-content{padding:0 14px 6px;border-radius:12px;background:#eef5fd;overflow:hidden}
.modules-intro{font-size:16px;font-weight:700;color:#27476f;padding:12px 14px;margin:0 -14px 2px;background:#e3eefb}
.module-list{list-style:none;margin:0;padding:0}
.module-row{display:flex;align-items:center;gap:12px;min-height:46px;padding:6px 0;border-top:1px solid #d7e6f7;font-size:16px;line-height:1.4;color:#0f1b3d}
.module-row:first-child{border-top:0}
.module-symbol{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:7px;background:#e3eefb;color:#0a84ff}
.module-symbol .icon{width:22px;height:22px;stroke-width:2}
.module-name{min-width:0}
.footer{background:#0a3f8f;color:#fff;border:1px solid rgb(255 255 255 / 20%)}
.footer-content{min-height:84px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.footer-brand{display:flex;align-items:center;gap:24px;flex-shrink:0}
.footer-brand img{display:block;width:140px;height:auto}
.footer-label{border-left:1px solid rgb(255 255 255 / 35%);padding-left:24px;font-size:15px;letter-spacing:.35em;text-transform:uppercase;position:relative;white-space:nowrap}
.footer-label::after{content:"";display:block;width:48px;height:3px;background:#ffd200;margin-top:5px}
.footer-features{display:flex;align-items:center;gap:40px}
.footer-feature{display:flex;align-items:center;gap:12px}
.footer-feature>svg{width:30px;height:30px;flex:0 0 30px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.footer-feature strong,.footer-feature span{display:block;font-size:13px;line-height:1.5}
.footer-feature span{color:rgb(255 255 255 / 75%)}
.noscript-message{padding:24px;border-radius:12px;background:#fff;border:1px solid var(--border)}
.noscript-message a{display:inline-block;padding:12px 20px;background:#0558a8;color:white;border-radius:8px}
@media(min-width:1200px) and (max-width:1499px){
 .section-body{padding:14px}.panel-card{padding:46px 14px 20px;gap:14px}.panel-symbol{width:110px;height:110px;flex-basis:110px}
 .panel-name{font-size:25px}.panel-description{font-size:16px}.access-link{font-size:16px;padding:0 14px}
 .section-header{gap:12px;padding-inline:16px}.section-symbol{width:76px;height:76px;flex-basis:76px}.section-title{font-size:29px}
 .footer-brand{gap:16px}.footer-label{padding-left:16px;font-size:12px;letter-spacing:.25em}.footer-features{gap:20px}.footer-feature{gap:8px}.footer-feature strong,.footer-feature span{font-size:12px}
}
@media(max-width:1199px){
 .hero-content{padding-inline:32px}h1>span{font-size:38px}h1>strong{font-size:44px}
 .hero-shade{background:linear-gradient(105deg,#0a3f8f 0%,#0558a8 42%,rgb(5 88 168 / 85%) 56%,transparent 70%)}
 .portal-main{padding-inline:24px}.sections-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .section-motion:first-child{grid-column:1/-1}.section-motion:first-child .section-body{grid-template-columns:repeat(2,minmax(0,1fr))}
 .panel-card{flex-direction:column;align-items:center;text-align:center;gap:16px}.panel-copy{flex:initial}.panel-description{max-width:300px}
 .section-header{gap:14px;padding-inline:16px}.section-symbol{width:72px;height:72px;flex-basis:72px}.section-symbol .icon{width:38px;height:38px}.section-title{font-size:28px}
 .footer-content{padding:24px;flex-direction:column;gap:22px}.footer-features{width:100%;justify-content:space-around;gap:18px}.footer-feature{gap:8px}
}
@media(max-width:767px){
 .hero{height:310px}.hero-content{padding-inline:16px}.hero-logo{width:200px;margin-bottom:18px}h1{letter-spacing:-.7px}h1>span{font-size:30px}h1>strong{font-size:34px}
 .hero-subtitle{font-size:10px;letter-spacing:.25em;gap:10px;margin-top:18px}.hero-subtitle::before{width:32px}
 .portal-main{padding:16px 16px 24px}.sections-grid{grid-template-columns:minmax(0,1fr);gap:20px}
 .section-motion:first-child{grid-column:auto}.section-motion:first-child .section-body{grid-template-columns:minmax(0,1fr)}
 .section-body{padding:14px}.section-header{height:115px;gap:12px;padding-inline:14px}.section-title{font-size:27px}.section-symbol{width:64px;height:64px;flex-basis:64px}.section-subtitle{font-size:11px}
 .panel-symbol{width:110px;height:110px;flex-basis:110px}.panel-card{padding:48px 18px 24px}.panel-name{font-size:28px}
 .module-row{font-size:16px}.footer-content{align-items:flex-start;padding:26px 24px}.footer-brand{gap:16px}.footer-brand img{width:120px}.footer-label{font-size:10px;letter-spacing:.2em;padding-left:16px}
 .footer-features{flex-direction:column;align-items:flex-start;gap:20px}.footer-feature{gap:14px}
}
@media(prefers-reduced-motion:no-preference){
 .js .hero-photo{animation:heroZoom 24s ease-in-out infinite alternate;will-change:transform}
 .js .hero-logo,.js h1>span,.js h1>strong,.js .hero-subtitle{animation:heroEnter 700ms cubic-bezier(.2,.7,.2,1) both}
 .js h1>span{animation-delay:120ms}.js h1>strong{animation-delay:240ms}.js .hero-subtitle{animation-delay:360ms}
 .js .hero-subtitle::before{animation:lineEnter 600ms cubic-bezier(.2,.7,.2,1) 500ms both}
 .js .section-motion{opacity:0;transform:translateY(24px)}
 .js .section-motion.is-visible{animation:sectionEnter 600ms cubic-bezier(.2,.7,.2,1) both}
 .js .section-motion.section-delay-1{animation-delay:120ms}.js .section-motion.section-delay-2{animation-delay:240ms}
 .js .module-row{opacity:0;transform:translateX(-8px)}
 .js .is-visible .module-row{animation:rowEnter 350ms cubic-bezier(.2,.7,.2,1) both}
 .js .report-bar{transform:scaleY(0);transform-box:fill-box;transform-origin:bottom}
 .js .is-visible .report-bar{animation:barEnter 650ms cubic-bezier(.2,.7,.2,1) both}
 .js .is-visible .report-bar:nth-child(2){animation-delay:100ms}.js .is-visible .report-bar:nth-child(3){animation-delay:200ms}.js .is-visible .report-bar:nth-child(4){animation-delay:300ms}
 .js .status-dot::after{content:"";position:absolute;inset:0;border:1px solid #16a34a;border-radius:50%;animation:statusHalo 2s ease-out infinite}
 .js .panel-card.is-available,.js .section-card.is-available{transition:translate 180ms,box-shadow 180ms}
 .js .panel-card.is-available:hover,.js .section-card.is-available:hover{translate:0 -3px;box-shadow:0 10px 26px rgb(5 88 168 / 17%)}
 .js .access-link{transition:box-shadow 180ms}.js .access-link .icon{transition:transform 180ms}
 .js .access-link:hover{box-shadow:0 7px 18px rgb(5 88 168 / 28%)}.js .access-link:hover .icon{transform:translateX(4px)}
 @keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.04)}}
 @keyframes heroEnter{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}
 @keyframes lineEnter{from{transform:scaleX(0)}to{transform:scaleX(1)}}
 @keyframes sectionEnter{to{opacity:1;transform:translateY(0)}}
 @keyframes rowEnter{to{opacity:1;transform:translateX(0)}}
 @keyframes barEnter{to{transform:scaleY(1)}}
 @keyframes statusHalo{0%{transform:scale(1);opacity:1}100%{transform:scale(2.8);opacity:0}}

@media(prefers-reduced-motion:no-preference){
.js .is-visible .row-delay-0{animation-delay:500ms}
.js .is-visible .row-delay-1{animation-delay:550ms}
.js .is-visible .row-delay-2{animation-delay:600ms}
.js .is-visible .row-delay-3{animation-delay:650ms}
.js .is-visible .row-delay-4{animation-delay:700ms}
.js .is-visible .row-delay-5{animation-delay:750ms}
.js .is-visible .row-delay-6{animation-delay:800ms}
.js .is-visible .row-delay-7{animation-delay:850ms}
.js .is-visible .row-delay-8{animation-delay:900ms}
.js .is-visible .row-delay-9{animation-delay:950ms}
.js .is-visible .row-delay-10{animation-delay:1000ms}
.js .is-visible .row-delay-11{animation-delay:1050ms}
.js .is-visible .row-delay-12{animation-delay:1100ms}
.js .is-visible .row-delay-13{animation-delay:1150ms}
.js .is-visible .row-delay-14{animation-delay:1200ms}
.js .is-visible .row-delay-15{animation-delay:1250ms}
.js .is-visible .row-delay-16{animation-delay:1300ms}
.js .is-visible .row-delay-17{animation-delay:1350ms}
.js .is-visible .row-delay-18{animation-delay:1400ms}
.js .is-visible .row-delay-19{animation-delay:1450ms}
.js .is-visible .row-delay-20{animation-delay:1500ms}
.js .is-visible .row-delay-21{animation-delay:1550ms}
.js .is-visible .row-delay-22{animation-delay:1600ms}
.js .is-visible .row-delay-23{animation-delay:1650ms}
.js .is-visible .row-delay-24{animation-delay:1700ms}
.js .is-visible .row-delay-25{animation-delay:1750ms}
.js .is-visible .row-delay-26{animation-delay:1800ms}
.js .is-visible .row-delay-27{animation-delay:1850ms}
.js .is-visible .row-delay-28{animation-delay:1900ms}
.js .is-visible .row-delay-29{animation-delay:1950ms}
.js .is-visible .row-delay-30{animation-delay:2000ms}
.js .is-visible .row-delay-31{animation-delay:2050ms}
.js .is-visible .row-delay-32{animation-delay:2100ms}
.js .is-visible .row-delay-33{animation-delay:2150ms}
.js .is-visible .row-delay-34{animation-delay:2200ms}
.js .is-visible .row-delay-35{animation-delay:2250ms}
.js .is-visible .row-delay-36{animation-delay:2300ms}
.js .is-visible .row-delay-37{animation-delay:2350ms}
.js .is-visible .row-delay-38{animation-delay:2400ms}
.js .is-visible .row-delay-39{animation-delay:2450ms}
}

.footer-feature strong{text-transform:uppercase}.footer-feature+.footer-feature{border-left:1px solid rgb(255 255 255 / 25%);padding-left:24px}
@media(max-width:767px){.footer-feature+.footer-feature{border-left:0;padding-left:0}}

.footer{border:0}

/* Encuadre, resumen del pie y navegación: geometría estable antes de cargar JS. */
html{scroll-padding-top:76px}
.hero{height:380px}
.hero-photo-frame{position:absolute;inset:0;z-index:-3}
.hero-photo{object-position:72% 70%;transform-origin:78% 70%}
.hero-text-frame{height:100%}
.portal-main{min-height:calc(100vh - 464px)}
.section-motion{min-width:0;scroll-margin-top:76px}
.section-header{scroll-margin-top:76px}
.footer-summary{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.footer-stats{display:flex;align-items:center;gap:20px;min-height:24px}
.footer-stat{display:inline-flex;align-items:center;gap:7px;font-size:15px;line-height:24px;white-space:nowrap}
.footer-stat+.footer-stat{padding-left:20px;border-left:1px solid rgb(255 255 255 / 30%)}
.footer-count{display:inline-block;min-width:2ch;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.footer-stat-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;flex:none}
.footer-stat-pending .footer-stat-dot{background:#ffd200}
.footer-restriction{font-size:13px;color:rgb(255 255 255 / 70%)}
.compact-nav,.reading-progress,.back-to-top{display:none}
.compact-nav{position:fixed;inset:0 0 auto;height:60px;z-index:30;padding:0 40px;align-items:center;justify-content:space-between;background:rgb(10 63 143 / 92%);backdrop-filter:blur(8px)}
.compact-brand{display:block;line-height:0}
.compact-brand img{display:block;width:120px;height:auto}
.compact-nav a:focus-visible{outline:3px solid #ffd200;outline-offset:4px}
.compact-taxis{border:1px solid rgb(255 255 255 / 40%);border-radius:9px;padding:7px 14px;color:#fff;font-size:14px;font-weight:700;line-height:22px}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:40;background:#ffd200;pointer-events:none;transform-origin:left}
.back-to-top{position:fixed;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;border:1px solid rgb(255 255 255 / 40%);background:#0a3f8f;color:#fff;z-index:25;align-items:center;justify-content:center;box-shadow:0 4px 18px rgb(10 63 143 / 25%);cursor:pointer}
.back-to-top svg{width:22px;height:22px}
.back-to-top:focus-visible{outline:3px solid #ffd200;outline-offset:4px}
.access-link{position:relative;overflow:hidden}
@media(max-width:1199px){
 .footer-summary{align-items:center}.footer-stats{justify-content:center}
}
@media(max-width:767px){
 .hero{height:300px}.hero-photo{object-position:80% 70%}
 .compact-nav{padding-inline:16px}.compact-taxis{font-size:13px;padding-inline:10px}
 .footer-summary{align-items:flex-start}.footer-stats{gap:12px}.footer-stat{font-size:13px;gap:5px}
 .footer-stat+.footer-stat{padding-left:12px}.footer-restriction{font-size:12px}
 .back-to-top{right:16px;bottom:16px}
}
@media(prefers-reduced-motion:no-preference){
 .js .hero-photo-frame{transform:translate3d(0,var(--hero-parallax,0px),0);will-change:transform}
 .js .hero-text-frame{transform:translate3d(0,var(--hero-text-y,0px),0);opacity:var(--hero-text-opacity,1);will-change:transform,opacity}
 .js .compact-nav:not([hidden]){display:flex;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform 300ms cubic-bezier(.2,.7,.2,1),opacity 300ms cubic-bezier(.2,.7,.2,1)}
 .js .compact-nav.is-shown{transform:translateY(0);opacity:1;visibility:visible;will-change:transform,opacity}
 .js .reading-progress{display:block;transform:scaleX(var(--reading-progress,0));will-change:transform}
 .js .back-to-top:not([hidden]){display:flex;transform:translateY(12px);opacity:0;visibility:hidden;transition:transform 200ms cubic-bezier(.2,.7,.2,1),opacity 200ms cubic-bezier(.2,.7,.2,1)}
 .js .back-to-top.is-shown{transform:translateY(0);opacity:1;visibility:visible}
 .js .is-visible .section-header{animation:headerReveal 500ms cubic-bezier(.2,.7,.2,1) both}
 .js .access-link::after{content:"";position:absolute;inset:-50% auto;width:25%;left:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgb(255 255 255 / 25%),transparent);transform:translateX(-200%) skewX(-20deg);animation:buttonGleam 5s cubic-bezier(.2,.7,.2,1) infinite both}
 @keyframes headerReveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
 @keyframes buttonGleam{0%{transform:translateX(-200%) skewX(-20deg);opacity:1}18%{transform:translateX(600%) skewX(-20deg);opacity:1}18.01%,100%{transform:translateX(600%) skewX(-20deg);opacity:0}}
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
 .js .section-card{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform 200ms cubic-bezier(.2,.7,.2,1);position:relative}
 .js .section-card.is-pointer-active{will-change:transform}
 .js .section-card::after{content:"";position:absolute;pointer-events:none;left:0;top:0;width:800px;height:800px;background:radial-gradient(400px circle at var(--x,50%) var(--y,50%),rgb(255 255 255 / 10%),transparent 40%);transform:translate3d(var(--glow-x,-400px),var(--glow-y,-400px),0);opacity:0;z-index:3}
 .js .section-card.is-pointer-active::after{opacity:1;will-change:transform,opacity}
 .js .panel-card:hover .forklift-fork{animation:forkLift 1400ms ease-in-out infinite alternate both;will-change:transform}
 @keyframes forkLift{from{transform:translateY(0)}to{transform:translateY(-8px)}}
}

/* La marca se establece antes del body; el pie se revela tras reservar su geometría. */
.js.portal-loading .footer{visibility:hidden}


/* Avance frontal: carrocería, suspensión y carretera se mueven de forma independiente. */
.road-stripe{opacity:0}
@media(prefers-reduced-motion:no-preference){
 .js .taxi-approach{transform:scale(1);transform-box:fill-box;transform-origin:center;transition:transform 300ms ease-in-out}
 .js .taxi-suspension{transform:translateY(0);transition:transform 300ms ease-in-out}
 .js .taxi-headlight{transition:fill 300ms ease-in-out,filter 300ms ease-in-out}
 .js .road-stripe{transform-box:fill-box;transform-origin:center;transition:opacity 300ms ease-in-out}
 .js .taxi-driving .taxi-approach{transform:scale(1.04);transition-duration:600ms}
 .js .taxi-driving .taxi-suspension{animation:taxiSuspension 400ms ease-in-out infinite both}
 .js .taxi-driving .road-stripe{animation:roadAdvance 600ms linear infinite both}
 .js .taxi-driving .road-stripe-2{animation-delay:200ms}
 .js .taxi-driving .road-stripe-3{animation-delay:400ms}
 .js .taxi-driving .taxi-headlight{fill:#fff;filter:drop-shadow(0 0 4px rgb(255 255 190 / 85%))}
 @keyframes taxiSuspension{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
 @keyframes roadAdvance{0%{transform:translateY(-8px) scale(.4);opacity:0}20%{opacity:.95}80%{opacity:.9}100%{transform:translateY(30px) scale(1.8);opacity:0}}
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
 .js .panel-card:has(.taxi-art):hover .taxi-approach{transform:scale(1.04);transition-duration:600ms}
 .js .panel-card:has(.taxi-art):hover .taxi-suspension{animation:taxiSuspension 400ms ease-in-out infinite both}
 .js .panel-card:has(.taxi-art):hover .road-stripe{animation:roadAdvance 600ms linear infinite both}
 .js .panel-card:has(.taxi-art):hover .road-stripe-2{animation-delay:200ms}
 .js .panel-card:has(.taxi-art):hover .road-stripe-3{animation-delay:400ms}
 .js .panel-card:has(.taxi-art):hover .taxi-headlight{fill:#fff;filter:drop-shadow(0 0 4px rgb(255 255 190 / 85%))}
}
