:root { --easing: cubic-bezier(.22, 1, .36, 1); }

/* Motion is progressive: all content is visible until motion.js opts in. */
.reading-progress { position: fixed; inset: 0 auto auto 0; width: 100%; height: 3px; z-index: 1200; transform: scaleX(0); transform-origin: left; background: #58dcb9; pointer-events: none; }
.hero-photo { transform: scale(1.035); animation: heroDrift 21s ease-in-out infinite alternate; }
.hero-content > .eyebrow, .hero-content > h1, .hero-content > .hero-sub, .hero-content > .hero-actions, .hero-bottom,
.investor-hero .investor-kicker, .investor-hero h1, .investor-hero p, .investor-hero .button { animation: riseIn .9s var(--easing) both; }
.hero-content > h1, .investor-hero h1 { animation-delay: .08s; }
.hero-content > .hero-sub, .investor-hero p { animation-delay: .18s; }
.hero-content > .hero-actions, .investor-hero .button { animation-delay: .3s; }
.hero-bottom { animation-delay: .5s; }
.investor-hero::before { content: ''; position: absolute; inset: 0 0 0 42%; background: linear-gradient(90deg,#071a22 2%,rgba(7,26,34,.18) 85%),url('/assets/waymo-night.jpg') 64% 52%/cover no-repeat; opacity: .56; animation: investorDrift 22s ease-in-out infinite alternate; }
.investor-hero::after { animation: glowBreath 9s ease-in-out infinite alternate; }
.investor-hero .wrap { isolation: isolate; }
.investor-hero p { max-width: 660px; }
.motion-ready [data-reveal]:not(.is-visible) { opacity: 0; transform: translateY(28px); }
[data-reveal] { transition: opacity .8s var(--easing), transform .8s var(--easing); transition-delay: var(--reveal-delay, 0ms); }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.button, .nav-ticket, .feature, .thesis-card, .operation-card, .scenario-cards article, .finance-pulse > div { transition: transform .35s var(--easing), box-shadow .35s var(--easing), background-color .35s ease; }
.button:hover, .nav-ticket:hover { transform: translateY(-3px); box-shadow: 0 12px 25px rgba(7,26,34,.17); }
.feature:hover, .thesis-card:hover, .operation-card:hover, .scenario-cards article:hover, .finance-pulse > div:hover { transform: translateY(-5px); box-shadow: 0 22px 45px rgba(7,26,34,.1); }
.feature img { transition: transform 1.1s var(--easing), filter .7s ease; }
.feature:hover img { transform: scale(1.055); }
.venue-photo { background-size: cover; transition: background-size 1.1s ease; }
.timeline li { position: relative; }
.timeline li::before { content: ''; position: absolute; top: -1px; left: 0; height: 2px; width: 0; background: var(--mint); transition: width .85s var(--easing); transition-delay: var(--reveal-delay, 0ms); }
.timeline li.is-visible::before { width: 100%; }
.map-shell { grid-template-rows: auto 3px minmax(460px,1fr) auto; }
.route-progress { height: 3px; background: #28505a; overflow: hidden; }
.route-progress > span { display: block; width: 100%; height: 100%; background: var(--mint); transform: scaleX(0); transform-origin: left; box-shadow: 0 0 14px var(--mint); }
.live-dot { animation: beacon 2.4s ease-in-out infinite; }
.map-bottomline button { transition: color .2s, transform .2s; }
.map-bottomline button:hover { color: white; transform: translateX(3px); }
.ride-details li { transition: color .3s, padding-left .3s; }
.ride-details li:hover { color: var(--mint); padding-left: 13px; }
.source-note, .model-caution, .ride-details p, .ride-note { font-size: 14px; line-height: 1.65; }
.data-table tbody tr { transition: background-color .25s ease; }
.data-table tbody tr:hover { background: #f1faf5; }
.finance-pulse { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 42px 0 38px; background: #c8ded4; border: 1px solid #c8ded4; }
.finance-pulse > div { padding: 30px; background: #e6f4ed; min-width: 0; }
.finance-pulse > div:last-child { background: var(--night); color: white; }
.finance-pulse span, .scenario-cards span, .scenario-result > span { display: block; font-size: 11px; font-weight: 800; letter-spacing: .15em; }
.finance-pulse strong { display: block; font-size: clamp(30px,4vw,52px); letter-spacing: -.07em; line-height: 1.1; margin: 15px 0 4px; font-variant-numeric: tabular-nums; }
.finance-pulse > div:last-child strong { color: var(--mint); }
.finance-pulse small { font-size: 13px; color: var(--muted); }
.finance-pulse > div:last-child small { color: #b7d0c9; }
.finance-detail { margin-top: 42px; }
.finance-detail h3, .scenario-head h3 { font-size: clamp(26px,3vw,38px); margin-bottom: 20px; }
.finance-detail > div:first-child p { color: var(--muted); font-size: 17px; line-height: 1.7; }
.finance-detail > div:first-child p strong { color: var(--ink); }
.finance-detail .model-breakdown h3 { font-size: 22px; letter-spacing: -.03em; margin-bottom: 12px; }
.finance-detail .model-breakdown dl div { font-size: 14px; padding: 12px 0; }
.finance-detail .model-breakdown .model-total { font-size: 19px; }
.finance-detail .model-breakdown dd { font-variant-numeric: tabular-nums; }
.scenario-head { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-top: 72px; }
.scenario-head h3 { margin-bottom: 8px; }
.scenario-head p { max-width: 620px; color: var(--muted); font-size: 17px; }
.scenario-note { color: #237261; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding-bottom: 15px; white-space: nowrap; }
.scenario-tool { display: grid; grid-template-columns: 1.1fr .9fr; background: white; border: 1px solid var(--line); box-shadow: 0 24px 50px rgba(7,26,34,.06); }
.scenario-controls { padding: 34px 40px; }
.scenario-controls label { display: flex; justify-content: space-between; align-items: baseline; font-size: 15px; font-weight: 800; margin: 0 0 7px; gap: 12px; }
.scenario-controls output { color: #11765f; font-size: 20px; font-variant-numeric: tabular-nums; }
.scenario-controls input[type=range] { display: block; width: 100%; height: 30px; margin: 0 0 23px; accent-color: #128d74; cursor: pointer; }
.scenario-controls .source-note { margin: 0; }
.scenario-result { background: var(--night); color: white; padding: 36px 40px; display: flex; flex-direction: column; justify-content: center; }
.scenario-result > span { color: var(--mint); }
.scenario-result > strong { font-size: clamp(42px,6vw,72px); line-height: 1.1; margin: 16px 0; letter-spacing: -.07em; font-variant-numeric: tabular-nums; }
.scenario-result > strong.is-negative { color: #ffb5a8; }
.scenario-result p { color: #c7ddd7; font-size: 15px; line-height: 1.55; }
.scenario-result small { color: #c7ddd7; font-size: 13px; line-height: 1.5; }
.scenario-meter { height: 8px; background: #29444a; overflow: hidden; margin: 8px 0 16px; }
.scenario-meter span { display: block; height: 100%; width: 100%; background: var(--mint); transform-origin: left; transition: transform .5s var(--easing), background-color .3s; }
.scenario-meter span.is-negative { background: #ff9689; }
.scenario-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 20px; }
.scenario-cards article { background: #e4f1e9; border-top: 4px solid #63bea4; padding: 26px; }
.scenario-cards strong { display: block; font-size: 26px; margin: 14px 0; letter-spacing: -.04em; }
.scenario-cards p { color: var(--muted); font-size: 14px; margin: 0; line-height: 1.6; }
.ticket-card:not([hidden]) { animation: ticketReveal .8s var(--easing) both; }
@keyframes riseIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ticketReveal { from { opacity: 0; transform: translateY(20px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes heroDrift { from { transform: scale(1.035) translateX(0); } to { transform: scale(1.11) translateX(-1.5%); } }
@keyframes investorDrift { from { transform: scale(1); } to { transform: scale(1.09) translateX(-1.5%); } }
@keyframes glowBreath { from { opacity: .65; } to { opacity: 1; } }
@keyframes beacon { 50% { box-shadow: 0 0 0 10px rgba(135,231,207,.04); } }
@media (max-width: 900px) { .scenario-head { display: block; } .scenario-note { padding: 0 0 18px; } .scenario-cards { grid-template-columns: 1fr; } }
@media (max-width: 800px) { .map-shell { grid-template-rows: auto 3px 410px auto; } .finance-pulse { grid-template-columns: 1fr; } .finance-pulse > div { padding: 23px; } .scenario-tool { grid-template-columns: 1fr; } .investor-hero::before { inset: 0; background: linear-gradient(90deg,rgba(7,26,34,.95),rgba(7,26,34,.4)),url('/assets/waymo-night.jpg') 64% 52%/cover no-repeat; opacity: .55; } }
@media (max-width: 600px) { .map-shell { grid-template-rows: auto 3px 360px auto; } .scenario-controls,.scenario-result { padding: 27px; } .scenario-head { margin-top: 55px; } .investor-hero h1 { max-width: 470px; } }
@media (prefers-reduced-motion: reduce) { .hero-photo,.investor-hero::before,.investor-hero::after,.live-dot,.hero-content > .eyebrow,.hero-content > h1,.hero-content > .hero-sub,.hero-content > .hero-actions,.hero-bottom,.investor-hero .investor-kicker,.investor-hero h1,.investor-hero p,.investor-hero .button,.ticket-card:not([hidden]) { animation: none !important; } .motion-ready [data-reveal]:not(.is-visible) { opacity: 1; transform: none; } [data-reveal],.button,.nav-ticket,.feature,.feature img,.thesis-card,.operation-card,.scenario-cards article,.finance-pulse > div,.timeline li::before,.scenario-meter span,.ride-details li { transition: none !important; } .feature:hover,.thesis-card:hover,.operation-card:hover,.scenario-cards article:hover,.finance-pulse > div:hover,.button:hover,.nav-ticket:hover { transform: none; } .timeline li::before { display: none; } }
