/* Trainwatch — shared design system (matches the animated scenes: light, liquid glass, SF type) */
@view-transition { navigation: auto; }

:root{
  --ink:#1D1D1F; --ink2:#3A3A3C; --muted:#6E6E73; --faint:#6A6A70;
  --bg:#F5F5F7; --card:#FFFFFF; --line:rgba(0,0,0,.08);
  --teal:#1E3A5A; --teal-ink:#1E3A5A; --red-ink:#9E2119; --teal2:#35587C; --blue:#35587C; --red:#B3261E; --amber:#8A5A12; --green:#2F6B3F;
  --r-xl:34px; --r-lg:28px; --r-md:20px; --r-sm:14px;
  --shadow:0 24px 60px rgba(20,30,50,.10),0 2px 8px rgba(20,30,50,.05);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Helvetica,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
img{max-width:100%;display:block}
::selection{background:rgba(53,88,124,.25)}
:focus-visible{outline:3px solid rgba(53,88,124,.55);outline-offset:3px;border-radius:8px}

.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.sec{padding:120px 0;position:relative}
.sec-tight{padding:80px 0}
.sec-white{background:#fff}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-ink);margin-bottom:18px}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(30,58,90,.15)}
.eyebrow.red{color:var(--red-ink)} .eyebrow.red::before{box-shadow:0 0 0 4px rgba(179,38,30,.15)}
h1,.h1{font-size:clamp(44px,6.2vw,84px);line-height:1.02;font-weight:700;letter-spacing:-.04em}
h2,.h2{font-size:clamp(34px,4.4vw,58px);line-height:1.05;font-weight:700;letter-spacing:-.035em}
h3{font-size:21px;line-height:1.25;font-weight:650;letter-spacing:-.015em}
.grad{background:linear-gradient(100deg,var(--teal) 0%,var(--blue) 55%,#8A5A12 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-red{background:linear-gradient(100deg,#B3261E,#B3261E);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:clamp(18px,1.6vw,22px);line-height:1.5;color:var(--muted);max-width:62ch}
.muted{color:var(--muted)}
.small{font-size:13px;color:var(--muted)}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}

/* ── Liquid glass ── */
.glass{background:rgba(255,255,255,.55);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8);border:1px solid rgba(255,255,255,.7);box-shadow:0 18px 50px rgba(28,38,58,.12),inset 0 1px 0 rgba(255,255,255,.95);position:relative}
.glass-dark{background:radial-gradient(120% 120% at 100% 0%,rgba(53,88,124,.22),transparent 60%),linear-gradient(160deg,rgba(24,27,33,.94),rgba(17,19,24,.96));backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border:1px solid rgba(255,255,255,.14);color:#fff;box-shadow:0 24px 60px rgba(10,14,22,.35),inset 0 1px 0 rgba(255,255,255,.18)}

/* ── Mesh background ── */
.mesh{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.mesh i{position:absolute;border-radius:50%;filter:blur(10px);opacity:.75}
.mesh i:nth-child(1){width:720px;height:720px;left:-180px;top:-260px;background:radial-gradient(closest-side,rgba(53,88,124,.42),transparent);animation:drift1 22s ease-in-out infinite alternate}
.mesh i:nth-child(2){width:820px;height:820px;right:-260px;top:-300px;background:radial-gradient(closest-side,rgba(53,88,124,.32),transparent);animation:drift2 26s ease-in-out infinite alternate}
.mesh i:nth-child(3){width:620px;height:620px;left:30%;top:40%;background:radial-gradient(closest-side,rgba(138,90,18,.20),transparent);animation:drift1 30s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate(90px,50px) scale(1.1)}}
@keyframes drift2{to{transform:translate(-100px,40px) scale(.95)}}
.sec > .wrap,.hero > .wrap{position:relative;z-index:1}

/* ── Nav ── */
.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:100;width:min(1180px,calc(100% - 24px));height:62px;border-radius:999px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 20px;transition:box-shadow .3s,background .3s}
.nav.scrolled{box-shadow:0 18px 50px rgba(28,38,58,.16),inset 0 1px 0 rgba(255,255,255,.95)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:19px;letter-spacing:-.02em}
.logo-mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(160deg,var(--teal2),var(--teal));display:grid;place-items:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.nav-links{display:flex;gap:4px;list-style:none}
.nav-links a{display:block;padding:9px 14px;border-radius:999px;font-size:15px;font-weight:500;color:var(--ink2);text-decoration:none;transition:background .2s,color .2s}
.nav-links a:hover{background:rgba(0,0,0,.05);color:var(--ink)}
.nav-links a[aria-current="page"]{background:rgba(30,58,90,.09);color:var(--teal-ink)}
.nav-cta{display:flex;align-items:center;gap:8px}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:0;background:transparent;cursor:pointer;align-items:center;justify-content:center}
.burger span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s}
.burger span::before{top:-6px}.burger span::after{top:6px}
.nav.open .burger span{background:transparent}
.nav.open .burger span::before{transform:translateY(6px) rotate(45deg)}
.nav.open .burger span::after{transform:translateY(-6px) rotate(-45deg)}
.sheet{position:fixed;top:86px;left:12px;right:12px;z-index:99;border-radius:28px;padding:12px;display:none;flex-direction:column}
.sheet a{padding:16px 18px;border-radius:16px;font-size:18px;font-weight:600;text-decoration:none}
.sheet a:hover{background:rgba(0,0,0,.05)}
.nav.open + .sheet{display:flex}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 24px;border-radius:999px;font-size:16px;font-weight:600;text-decoration:none;border:0;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;white-space:nowrap}
.btn:active{transform:scale(.98)}
.btn-ink{background:var(--ink);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.btn-ink:hover{background:#000;box-shadow:0 12px 30px rgba(0,0,0,.24)}
.btn-glass{background:rgba(255,255,255,.65);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.8);color:var(--ink);box-shadow:0 8px 24px rgba(28,38,58,.10)}
.btn-glass:hover{background:#fff}
.btn-sm{height:42px;padding:0 18px;font-size:15px}
.btn-white{background:#fff;color:var(--ink)}
.link-arrow{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--teal-ink);text-decoration:none}
.link-arrow::after{content:"→";transition:transform .2s}
.link-arrow:hover::after{transform:translateX(4px)}

/* ── Hero ── */
.hero{position:relative;padding:150px 0 90px;overflow:hidden}
.hero h1{max-width:19ch}
.hero .lead{margin-top:26px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.page-hero{position:relative;padding:160px 0 70px;overflow:hidden}
.page-hero h1{font-size:clamp(42px,5.6vw,76px);max-width:16ch}
.page-hero .lead{margin-top:22px}

/* ── Scene frames ── */
.scene-frame{position:relative;width:100%;aspect-ratio:1440/920;border-radius:var(--r-xl);overflow:hidden;background:#E9EEF3;border:1px solid rgba(255,255,255,.8);box-shadow:0 40px 100px rgba(17,24,39,.18),0 4px 14px rgba(17,24,39,.08)}
.scene-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.scene-meta{display:flex;justify-content:space-between;gap:24px;margin-top:14px;font-size:13px;color:var(--muted)}
.scene-meta a{font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap}
.seg{display:inline-flex;padding:4px;border-radius:999px;gap:4px;margin-bottom:18px}
.seg button{height:40px;padding:0 18px;border:0;border-radius:999px;background:transparent;font:600 14px var(--font);color:var(--ink2);cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.seg button[aria-selected="true"]{background:#fff;color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.10)}

/* ── Stats ── */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.stat{padding:30px 28px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.stat-num{font-size:clamp(40px,4.6vw,60px);font-weight:700;letter-spacing:-.04em;line-height:1}
.stat-lbl{margin-top:12px;font-size:16px;color:var(--ink2)}
.stat-src{margin-top:14px;font-size:12px;color:var(--faint)}
.stat-src a{color:var(--faint)}

/* ── Cards & bento ── */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow)}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.bento > *{grid-column:span 2}
.bento .wide{grid-column:span 3}
.bento .full{grid-column:span 6}
.tile{border-radius:var(--r-lg);padding:30px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);position:relative;overflow:hidden;min-height:220px;display:flex;flex-direction:column}
.tile p{color:var(--muted);margin-top:10px;font-size:16px}
.tile .ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;margin-bottom:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.tile .num{font-family:var(--mono);font-size:13px;color:var(--faint);margin-bottom:10px}
.tile-link{text-decoration:none;transition:transform .25s,box-shadow .25s}
.tile-link:hover{transform:translateY(-4px);box-shadow:0 30px 70px rgba(20,30,50,.14)}
.tile-link .link-arrow{margin-top:auto;padding-top:20px}
.ico-teal{background:linear-gradient(160deg,var(--teal2),var(--teal))}
.ico-blue{background:linear-gradient(160deg,#35587C,#1E3A5A)}
.ico-indigo{background:linear-gradient(160deg,#A87A2E,#6B450D)}
.ico-red{background:linear-gradient(160deg,#C9554D,#8F1E18)}
.ico-amber{background:linear-gradient(160deg,#C08A2E,#8A5A12)}
.ico-green{background:linear-gradient(160deg,#3E7F50,#2F6B3F)}
.sec-head{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:end;margin-bottom:56px}
.sec-head .lead{font-size:19px}

/* ── Callouts ── */
.note{display:flex;gap:14px;align-items:flex-start;padding:20px 22px;border-radius:var(--r-md);background:#FFF1EE;border:1px solid #F6CFC7;color:#5B2A22;font-size:16px}
.note svg{flex-shrink:0;margin-top:2px}
.band{background:radial-gradient(120% 140% at 0% 0%,rgba(53,88,124,.35),transparent 55%),radial-gradient(90% 120% at 100% 100%,rgba(53,88,124,.38),transparent 60%),linear-gradient(135deg,#14171c,#1d2229)!important;color:#fff;border-radius:var(--r-xl);padding:56px;display:flex;align-items:center;justify-content:space-between;gap:32px;overflow:hidden;position:relative}
.band h2{font-size:clamp(30px,3.4vw,44px)}
.band p{color:rgba(255,255,255,.72);margin-top:12px;font-size:18px}

/* ── Charts ── */
.chart-card h3{margin-bottom:6px}
.chart-sub{font-size:15px;color:var(--muted);margin-bottom:26px}
.hbar{display:grid;grid-template-columns:120px 1fr 70px;align-items:center;gap:12px;padding:6px 0;cursor:default}
.hbar-lbl{font-size:14px;font-weight:600}
.hbar-track{height:20px}
.hbar-fill{height:100%;background:#3A4250;border-radius:0 5px 5px 0;transform-origin:left;transform:scaleX(0);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.hbar.hl .hbar-fill{background:var(--teal)}
.hbar:hover .hbar-fill{filter:brightness(1.25)}
.hbar-val{font-size:14px;font-variant-numeric:tabular-nums;text-align:right}
.vbars{display:flex;align-items:flex-end;gap:3px;height:210px;border-bottom:1px solid rgba(0,0,0,.18)}
.vbar{flex:1;height:100%;display:flex;align-items:flex-end;position:relative;cursor:default}
.vbar-fill{width:100%;background:#B7BEC8;border-radius:5px 5px 0 0;transform-origin:bottom;transform:scaleY(0);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.vbar.hl .vbar-fill{background:var(--red)}
.vbar:hover .vbar-fill{filter:brightness(.9)}
.vbar-top{position:absolute;left:50%;transform:translateX(-50%);font-size:13px;font-weight:700}
.vaxis{display:flex;gap:3px;margin-top:8px}
.vaxis span{flex:1;text-align:center;font-size:12px;color:var(--faint)}
.chart-note{font-size:12px;color:var(--faint);margin-top:18px}
.chart-note a{color:var(--faint)}
.in .hbar-fill,.in .vbar-fill{transform:none}
.tip{position:fixed;pointer-events:none;background:rgba(22,24,28,.92);color:#fff;font-size:13px;padding:7px 10px;border-radius:10px;white-space:nowrap;opacity:0;transition:opacity .12s;z-index:200;backdrop-filter:blur(10px)}
.tip.show{opacity:1}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Timeline ── */
.tl{list-style:none;position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:56px}
.tl li{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--line)}
.tl-date{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--teal-ink);padding-top:2px}
.tl li.nm .tl-date{color:var(--red-ink)}
.tl-txt{font-size:16px;color:var(--ink2)}
.tl-txt b{color:var(--ink);font-weight:650}

/* ── Ring / meter ── */
.ring-wrap{display:flex;align-items:center;gap:28px}
.ring{width:150px;height:150px;flex-shrink:0}
.ring circle{fill:none;stroke-width:14}
.ring .r-bg{stroke:#ECEDEF}
.ring .r-lo{stroke:var(--red);stroke-linecap:round;transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1)}
.ring .r-hi{stroke:rgba(179,38,30,.28);stroke-linecap:round;transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1)}

/* ── Calculators ── */
.calc{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:stretch}
.field{margin-bottom:24px}
.field label{display:flex;justify-content:space-between;font-size:15px;font-weight:600;margin-bottom:10px}
.field output,.field .val{font-variant-numeric:tabular-nums;color:var(--teal-ink)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--teal) var(--p,50%),#E2E4E8 var(--p,50%));outline-offset:6px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:0;box-shadow:0 2px 10px rgba(0,0,0,.25);cursor:pointer}
input[type=range]::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#fff;border:0;box-shadow:0 2px 10px rgba(0,0,0,.25);cursor:pointer}
select,input[type=text],input[type=email],textarea{width:100%;font:16px var(--font);color:var(--ink);background:#F2F3F5;border:1px solid transparent;border-radius:var(--r-sm);padding:14px 16px;transition:border .2s,background .2s}
select:focus,input:focus,textarea:focus{outline:none;background:#fff;border-color:var(--teal-ink);box-shadow:0 0 0 4px rgba(30,58,90,.12)}
.calc-out{display:flex;flex-direction:column;justify-content:center;border-radius:var(--r-lg);padding:36px}
.calc-big{font-size:clamp(44px,5vw,66px);font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.calc-sub{color:rgba(255,255,255,.7);margin-top:10px}
.calc-row{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid rgba(255,255,255,.14);font-size:15px;color:rgba(255,255,255,.85)}
.calc-row b{font-variant-numeric:tabular-nums}

/* ── FAQ ── */
.faq{max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:24px 0;font-size:19px;font-weight:600;display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:26px;font-weight:300;color:var(--muted);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 24px;color:var(--ink2);font-size:17px;max-width:70ch}

/* ── Steps (roadmap) ── */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;position:relative}
.steps::before{content:"";position:absolute;left:28px;right:calc((100% - 60px)/4 - 28px);top:28px;height:2px;background:linear-gradient(90deg,var(--teal),var(--blue));transform-origin:left;transform:scaleX(0);transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.steps.in::before{transform:none}
.step{position:relative}
.step-dot{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;background:linear-gradient(160deg,var(--teal2),var(--teal));box-shadow:0 0 0 8px var(--bg),0 10px 24px rgba(30,58,90,.35);position:relative;z-index:1;margin-bottom:22px}
.step .when{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-ink)}
.step h3{margin:6px 0 8px}
.step p{color:var(--muted);font-size:15px}

/* ── Form ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid .full{grid-column:1/-1}
.form-grid label{display:block;font-size:13px;font-weight:600;color:var(--ink2);margin-bottom:6px}
.form-done{display:none;text-align:center;padding:40px 10px}

/* ── Footer ── */
.foot{padding:70px 0 50px;border-top:1px solid var(--line);background:#fff}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.foot .foot-h{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:14px}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.foot a{text-decoration:none;color:var(--ink2)}
.foot a:hover{color:var(--teal-ink)}
.foot-legal{margin-top:50px;font-size:13px;color:var(--faint);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* ── Reveal ── */
[data-reveal].rv{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
[data-reveal].rv.in{opacity:1;transform:none}
[data-reveal-delay="1"]{transition-delay:.08s}[data-reveal-delay="2"]{transition-delay:.16s}[data-reveal-delay="3"]{transition-delay:.24s}

/* ── Tech cutaway ── */
.cut{position:relative;height:420px;border-radius:var(--r-xl);overflow:hidden;background:linear-gradient(180deg,#CFE6F7 0%,#EAF3F9 46%,#DDE8D5 46.2%,#C9D7BD 50%,#8A6B4A 50.2%,#5E4630 100%)}
.cut-ground{position:absolute;left:0;right:0;top:50%;height:50%;background:radial-gradient(circle at 4px 4px,rgba(60,40,25,.45) 0 1.3px,transparent 1.8px) 0 0/14px 12px}
.cut-rail{position:absolute;left:0;right:0;top:calc(50% - 10px);height:10px;background:linear-gradient(#D3D6DB,#7A7E86)}
.cut-ballast{position:absolute;left:0;right:0;top:50%;height:16px;background:radial-gradient(circle at 3px 3px,#8d8a84 0 2px,transparent 2.4px) 0 0/7px 5px,#6f6c66}
.cut-train{position:absolute;top:calc(50% - 94px);left:0;height:84px;display:flex;gap:6px;animation:cutTrain 9s linear infinite}
.cut-car{width:190px;height:70px;border-radius:6px;position:relative;margin-top:6px}
.cut-car::after{content:"";position:absolute;left:12px;right:12px;bottom:-12px;height:14px;background:radial-gradient(circle at 14px 7px,#222 0 6px,transparent 6.5px),radial-gradient(circle at calc(100% - 14px) 7px,#222 0 6px,transparent 6.5px)}
.cut-loco{width:220px;height:76px;border-radius:6px 22px 6px 6px;background:linear-gradient(180deg,#F07A2C,#C9561A);position:relative}
.cut-loco::before{content:"";position:absolute;right:26px;top:12px;width:42px;height:20px;border-radius:4px;background:linear-gradient(160deg,#B9D6EA,#2E4A5E)}
.cut-loco::after{content:"";position:absolute;left:14px;right:14px;bottom:-12px;height:14px;background:radial-gradient(circle at 14px 7px,#222 0 6px,transparent 6.5px),radial-gradient(circle at 40px 7px,#222 0 6px,transparent 6.5px),radial-gradient(circle at calc(100% - 40px) 7px,#222 0 6px,transparent 6.5px),radial-gradient(circle at calc(100% - 14px) 7px,#222 0 6px,transparent 6.5px)}
@keyframes cutTrain{0%{transform:translateX(-110%)}100%{transform:translateX(110vw)}}
.cut-sensor{position:absolute;top:calc(50% + 70px);left:30%;width:64px;height:26px;border-radius:13px;background:linear-gradient(180deg,#3A4A52,#1C2429);border:2px solid #9DB3C9}
.cut-wave{position:absolute;top:calc(50% + 83px);left:calc(30% + 32px);width:220px;height:220px;margin:-110px 0 0 -110px;border-radius:50%;border:2px solid #9DB3C9;animation:cutWave 1.6s ease-out infinite;opacity:0}
.cut-wave.w2{animation-delay:.8s}
@keyframes cutWave{0%{transform:scale(.15);opacity:.9}100%{transform:scale(1);opacity:0}}
.cut-pole{position:absolute;left:62%;top:14%;width:5px;height:38%;background:linear-gradient(90deg,#9A9DA3,#5E6168)}
.cut-cam{position:absolute;left:calc(62% - 30px);top:12%;width:40px;height:20px;border-radius:5px;background:#2A2D33}
.cut-cone{position:absolute;left:calc(62% - 210px);top:14%;width:200px;height:120px;background:linear-gradient(200deg,rgba(127,155,184,.45),rgba(127,155,184,0));clip-path:polygon(100% 0,0 100%,100% 18%);animation:cone 2.4s ease-in-out infinite}
@keyframes cone{50%{opacity:.4}}
.cut-tag{position:absolute;padding:8px 12px;border-radius:12px;font-size:13px;font-weight:600}
.flow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin-top:24px}
.flow-in,.flow-out{display:flex;flex-direction:column;gap:10px}
.flow-chip{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:0 6px 18px rgba(20,30,50,.06);font-weight:600;font-size:15px}
.flow-chip i{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.flow-core{width:150px;height:150px;border-radius:40px;display:grid;place-items:center;text-align:center;font-weight:700;color:#fff;background:linear-gradient(160deg,var(--teal2),var(--teal));box-shadow:0 0 0 12px rgba(53,88,124,.12),0 0 0 26px rgba(53,88,124,.06),0 20px 40px rgba(30,58,90,.35);animation:core 2.4s ease-in-out infinite}
@keyframes core{50%{box-shadow:0 0 0 16px rgba(53,88,124,.16),0 0 0 34px rgba(53,88,124,.06),0 20px 40px rgba(30,58,90,.35)}}

/* ── Responsive ── */
@media (max-width:1024px){
  .nav-links{display:none}.burger{display:flex}.nav-cta .btn{display:none}
  .sec{padding:90px 0}.sec-head{grid-template-columns:1fr;gap:18px}
  .bento{grid-template-columns:1fr 1fr}.bento > *,.bento .wide{grid-column:span 1}.bento .full{grid-column:1/-1}
  .calc,.grid-2{grid-template-columns:1fr}
  .tl{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;row-gap:36px}.steps::before{display:none}
  .band{flex-direction:column;align-items:flex-start;padding:40px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .flow{grid-template-columns:1fr}.flow-core{margin:0 auto}
}
@media (max-width:640px){
  .wrap{padding:0 20px}
  .hero{padding:120px 0 60px}.page-hero{padding:130px 0 40px}
  .stats,.grid-3,.bento{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .scene-frame{border-radius:20px}
  .scene-meta{flex-direction:column;gap:6px}
  .hbar{grid-template-columns:96px 1fr 58px}
  .tl li{grid-template-columns:86px 1fr}
  .ring-wrap{flex-direction:column;align-items:flex-start}
  .foot-grid{grid-template-columns:1fr}
  .cut{height:340px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  [data-reveal]{opacity:1;transform:none}
}

/* ════════════ v2.1 additions ════════════ */
.hero-row{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:56px;align-items:end;margin-top:26px}
.hero-row .lead{margin-top:0}
.hero-row .hero-actions{margin-top:30px}

/* Trust strip */
.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:56px}
.trust-item{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:var(--r-md);background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.9);box-shadow:0 8px 24px rgba(17,24,39,.06),inset 0 1px 0 #fff;backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6)}
.trust-item b{display:block;font-size:15px;line-height:1.3}
.trust-item span.t2{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.ti{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.ti-crimson{background:linear-gradient(160deg,#B23A3A,#841617)}
.ti-teal{background:linear-gradient(160deg,var(--teal2),var(--teal))}
.ti-blue{background:linear-gradient(160deg,#7F9BB8,#1E3A5A)}
.ti-indigo{background:linear-gradient(160deg,#A87A2E,#8A5A12)}

/* Live ticker */
.ticker{border-radius:26px;padding:18px;background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.95);box-shadow:0 30px 70px rgba(17,24,39,.14),inset 0 1px 0 #fff;backdrop-filter:blur(26px) saturate(1.8);-webkit-backdrop-filter:blur(26px) saturate(1.8)}
.tk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.tk-tag{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-ink)}
.tk-tag i{width:8px;height:8px;border-radius:50%;background:var(--teal2);box-shadow:0 0 0 0 rgba(53,88,124,.6);animation:tkPing 1.6s ease-out infinite}
@keyframes tkPing{0%{box-shadow:0 0 0 0 rgba(53,88,124,.55)}100%{box-shadow:0 0 0 9px rgba(53,88,124,0)}}
.tk-clock{font-family:var(--mono);font-size:13px;color:var(--muted)}
.tk-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:14px;background:rgba(255,255,255,.7);margin-top:6px;font-size:15px}
.tk-row b{font-weight:600}.tk-row small{display:block;font-size:12px;color:var(--muted);font-weight:400}
.tk-s{font-size:13px;font-weight:600;padding:5px 10px;border-radius:999px;white-space:nowrap;font-variant-numeric:tabular-nums;transition:background .3s,color .3s}
.tk-row[data-st=clear] .tk-s{background:rgba(47,107,63,.12);color:#2F6B3F}
.tk-row[data-st=soon] .tk-s{background:rgba(138,90,18,.18);color:#6B450D}
.tk-row[data-st=down] .tk-s{background:#B3261E;color:#fff}
.tk-row[data-st=open] .tk-s{background:rgba(53,88,124,.12);color:#1E3A5A}
.tk-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;font-size:13px;color:var(--ink2)}
.tk-det{display:flex;align-items:center;gap:8px}
.tk-det svg{flex:none}
.tk-btn{border:0;background:rgba(0,0,0,.06);border-radius:999px;padding:6px 12px;font:600 12px/1 var(--font, inherit);color:var(--ink);cursor:pointer}
.tk-btn:hover{background:rgba(0,0,0,.1)}
.tk-note{font-size:12px;color:var(--muted);margin-top:10px}

/* 24-hour day */
.day{padding:28px}
.day-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}
.day-kpi{padding:14px 16px;border-radius:16px;background:#F5F5F7}
.day-kpi .k{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.day-kpi .v{font-size:28px;font-weight:700;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}
.day-kpi.red .v{color:var(--red-ink)}
.day-track{position:relative;height:96px;border-radius:16px;overflow:hidden;background:#F2F4F7}
.day-night{position:absolute;top:0;bottom:0;background:linear-gradient(180deg,#1E2633,#2A3445)}
.day-night::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.5) 0 1px,transparent 1.5px) 0 0/38px 26px;opacity:.5}
.day-ev{position:absolute;top:18px;bottom:18px;min-width:3px;border-radius:2px;background:var(--teal2);transform:scaleY(0);transform-origin:50% 100%;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.day-ev.p{background:#7F9BB8}
.day-ev.long{background:#B3261E;top:10px;bottom:10px}
.day-ev.on{transform:none}
.day-head{position:absolute;top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 0 12px rgba(255,255,255,.8);left:0;will-change:transform}
.day-head::before{content:attr(data-t);position:absolute;top:4px;left:6px;font:600 11px/1 var(--mono);color:#fff;background:rgba(0,0,0,.55);padding:3px 5px;border-radius:5px;white-space:nowrap}
.day-axis{display:flex;justify-content:space-between;margin-top:8px;font:12px/1 var(--mono);color:var(--muted)}
.day-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;font-size:13px;color:var(--ink2)}
.day-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.day-bottom{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-top:22px;align-items:start}
.day-log{list-style:none;margin:0;padding:0;font-size:14px}
.day-log li{display:grid;grid-template-columns:60px 1fr auto;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);animation:logIn .35s ease}
.day-log li .t{font-family:var(--mono);color:var(--muted)}
.day-log li .d{font-variant-numeric:tabular-nums;font-weight:600}
.day-log li.long .d{color:var(--red-ink)}
@keyframes logIn{from{opacity:0;transform:translateY(-6px)}}
.day-ctl{display:flex;gap:10px;align-items:center;margin-top:16px}

/* Product dashboard preview */
.dash{border-radius:28px;overflow:hidden;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.95);box-shadow:0 50px 120px rgba(17,24,39,.18),0 4px 14px rgba(17,24,39,.06);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}
.dash-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);background:rgba(250,250,252,.8)}
.dash-bar i{width:11px;height:11px;border-radius:50%;background:#E1E3E8}
.dash-bar i:nth-child(1){background:#FF5F57}.dash-bar i:nth-child(2){background:#FEBC2E}.dash-bar i:nth-child(3){background:#28C840}
.dash-bar span{margin-left:12px;font-size:13px;color:var(--muted)}
.dash-body{display:grid;grid-template-columns:230px minmax(0,1fr)}
.dash-side{padding:16px;border-right:1px solid var(--line);background:rgba(245,245,247,.6)}
.dash-side .lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 6px 10px}
.dash-x{display:flex;justify-content:space-between;align-items:center;padding:10px;border-radius:12px;font-size:14px}
.dash-x.sel{background:#fff;box-shadow:0 2px 8px rgba(17,24,39,.06)}
.dash-x small{display:block;font-size:11px;color:var(--muted);font-family:var(--mono)}
.dash-dot{width:9px;height:9px;border-radius:50%;background:#C7CAD1}
.dash-dot.live{background:#2F6B3F;box-shadow:0 0 0 4px rgba(47,107,63,.18)}
.dash-dot.down{background:#B3261E;box-shadow:0 0 0 4px rgba(179,38,30,.2)}
.dash-dot.soon{background:#A8741E;box-shadow:0 0 0 4px rgba(138,90,18,.2)}
.dash-main{padding:20px 22px;min-width:0}
.dash-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.dash-top h3{font-size:20px}
.dash-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;background:rgba(47,107,63,.12);color:#2F6B3F;transition:background .3s,color .3s}
.dash-pill[data-st=soon]{background:rgba(138,90,18,.18);color:#6B450D}
.dash-pill[data-st=down]{background:#B3261E;color:#fff}
.dash-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.dash-kpi{padding:12px 14px;border-radius:14px;background:#fff;border:1px solid var(--line)}
.dash-kpi .k{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.dash-kpi .v{font-size:22px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}
.dash-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:12px}
.dash-card{padding:14px;border-radius:14px;background:#fff;border:1px solid var(--line);min-width:0}
.dash-card h4{font-size:13px;font-weight:600;margin-bottom:10px;display:flex;justify-content:space-between}
.dash-card h4 span{font-weight:400;color:var(--muted)}
.dash-hist{display:flex;align-items:flex-end;gap:3px;height:110px}
.dash-hist i{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--teal2),var(--teal));height:var(--h);transform:scaleY(.04);transform-origin:bottom;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.dash.in .dash-hist i{transform:none}
.dash-hax{display:flex;justify-content:space-between;font:11px/1 var(--mono);color:var(--muted);margin-top:6px}
.dash-log{width:100%;border-collapse:collapse;font-size:13px}
.dash-log th{text-align:left;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:0 0 6px}
.dash-log td{padding:7px 0;border-top:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap}
.dash-log td:first-child{font-family:var(--mono);color:var(--muted)}
.dash-log tr.new td{animation:rowIn .6s ease}
@keyframes rowIn{from{background:rgba(53,88,124,.18)}}
.tagx{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;background:rgba(47,107,63,.12);color:#2F6B3F}
.tagx.stop{background:rgba(179,38,30,.12);color:var(--red-ink)}
.dash-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.dash-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;font-size:13px;font-weight:600;background:#F2F3F5;color:var(--ink)}
.dash-btn.pri{background:var(--ink);color:#fff}
.dash-btn.pulse{animation:btnPulse 1.4s ease 2}
@keyframes btnPulse{50%{box-shadow:0 0 0 6px rgba(53,88,124,.35)}}
.dash-cap{font-size:13px;color:var(--muted);margin-top:14px;text-align:center}

/* Cutaway v2 (SVG) */
.cx{position:relative;border-radius:var(--r-xl);overflow:hidden;background:#DCEAF5;box-shadow:0 40px 100px rgba(17,24,39,.16),0 4px 14px rgba(17,24,39,.06);--CT:14s}
.cx svg{display:block;width:100%;height:auto}
.cx .a{animation-duration:var(--CT);animation-iteration-count:infinite;animation-timing-function:linear;animation-fill-mode:both}
.cx.paused .a,.cx.paused .spin,.cx.paused .flash,.cx.paused .flash2{animation-play-state:paused}
.cx .spin{transform-box:fill-box;transform-origin:center;animation:cxSpin .5s linear infinite}
@keyframes cxSpin{to{transform:rotate(360deg)}}
.cx .flash{animation:cxFlash .9s steps(1) infinite}.cx .flash2{animation:cxFlash .9s steps(1) .45s infinite}
@keyframes cxFlash{0%{opacity:1}50%{opacity:.12}}
.cx-train{animation-name:cxTrain;animation-timing-function:linear}
@keyframes cxTrain{0%,6%{transform:translateX(-60px)}86%,100%{transform:translateX(2640px)}}
.cx-waves{animation-name:cxShow1}
@keyframes cxShow1{0%,12.5%{opacity:0}13.5%,52%{opacity:1}54%,100%{opacity:0}}
.cx-ring{transform-box:fill-box;transform-origin:center;animation:cxRing 1.5s ease-out infinite}
.cx-ring.r2{animation-delay:.5s}.cx-ring.r3{animation-delay:1s}
@keyframes cxRing{0%{transform:scale(.1);opacity:.95}100%{transform:scale(1);opacity:0}}
.cx-led{animation-name:cxLed}
@keyframes cxLed{0%,12.5%{fill:#9DB3C9;opacity:.5}13.5%,52%{fill:#C08A2E;opacity:1}54%,100%{fill:#9DB3C9;opacity:.5}}
.cx-lights{animation-name:cxShow2}
@keyframes cxShow2{0%,18.5%{opacity:0}19%,72.5%{opacity:1}73%,100%{opacity:0}}
.cx-gate{transform-box:view-box;transform-origin:850px 228px;animation-name:cxGate}
@keyframes cxGate{0%,19.5%{transform:rotate(84deg)}23%,70%{transform:rotate(0deg)}73.5%,100%{transform:rotate(84deg)}}
.cx-cone{animation-name:cxCone}
@keyframes cxCone{0%,26%{opacity:.35}27%,67%{opacity:1}68%,100%{opacity:.35}}
.cx-sig{animation-name:cxSig}
@keyframes cxSig{0%,14%{opacity:0}15%,24%{opacity:1}25%,69.5%{opacity:0}70%,76%{opacity:1}77%,100%{opacity:0}}
.cx-pkt{animation-name:cxPkt}
@keyframes cxPkt{0%,14%{transform:translate(0,0);opacity:0}14.5%{opacity:1}19.5%{transform:translate(var(--dx),var(--dy));opacity:1}20%,100%{transform:translate(var(--dx),var(--dy));opacity:0}}
.cx-pkt.p2{animation-name:cxPkt2}
@keyframes cxPkt2{0%,27%{transform:translate(0,0);opacity:0}27.5%{opacity:1}31.5%{transform:translate(var(--dx),var(--dy));opacity:1}32%,100%{transform:translate(var(--dx),var(--dy));opacity:0}}
.cx-ov{position:absolute;inset:0;pointer-events:none}
.cx-chip{position:absolute;padding:9px 13px;border-radius:14px;font-size:13px;font-weight:600;line-height:1.3;white-space:nowrap;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.95);box-shadow:0 10px 30px rgba(17,24,39,.14),inset 0 1px 0 #fff;backdrop-filter:blur(18px) saturate(1.7);-webkit-backdrop-filter:blur(18px) saturate(1.7)}
.cx-chip small{display:block;font-size:11px;font-weight:500;color:var(--muted)}
.cx-chip.dark{background:rgba(20,23,28,.8);color:#fff;border-color:rgba(255,255,255,.18)}
.cx-chip.dark small{color:rgba(255,255,255,.7)}
.cx-st{position:absolute;left:20px;top:20px;width:290px;height:58px}
.cx-st .cx-chip{left:0;top:0;right:0;display:flex;align-items:center;gap:10px}
.cx-st .cx-chip i{flex:none;width:10px;height:10px;border-radius:50%}
.cx-s1{animation-name:cxS1}.cx-s2{animation-name:cxS2}.cx-s3{animation-name:cxS3}.cx-s4{animation-name:cxS4}
@keyframes cxS1{0%,13%{opacity:1}13.5%,100%{opacity:0}}
@keyframes cxS2{0%,13%{opacity:0}13.5%,26.5%{opacity:1}27%,100%{opacity:0}}
@keyframes cxS3{0%,26.5%{opacity:0}27%,70%{opacity:1}70.5%,100%{opacity:0}}
@keyframes cxS4{0%,70%{opacity:0}70.5%,99%{opacity:1}100%{opacity:0}}
.cx-o1{animation-name:cxO1}.cx-o2{animation-name:cxO2}.cx-o3{animation-name:cxO3}.cx-o4{animation-name:cxO4}
@keyframes cxO1{0%,19%{opacity:0;transform:translateY(8px)}20.5%,74%{opacity:1;transform:none}76%,100%{opacity:0;transform:none}}
@keyframes cxO2{0%,22%{opacity:0;transform:translateY(8px)}23.5%,74%{opacity:1;transform:none}76%,100%{opacity:0;transform:none}}
@keyframes cxO3{0%,31.5%{opacity:0;transform:translateY(8px)}33%,74%{opacity:1;transform:none}76%,100%{opacity:0;transform:none}}
@keyframes cxO4{0%,74.5%{opacity:0;transform:translateY(8px)}76%,97%{opacity:1;transform:none}99%,100%{opacity:0;transform:none}}
.cx-legend{display:none}

/* Info table */
.xtable{width:100%;border-collapse:collapse;font-size:15px}
.xtable th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:12px 10px;border-bottom:1px solid var(--line)}
.xtable td{padding:12px 10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.xtable td.mono{font-family:var(--mono);font-size:14px}
.xtable tr:hover td{background:rgba(30,58,90,.04)}
.xtable-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}
.field-chip{padding:16px 18px;border-radius:16px;background:#F5F5F7}
.field-chip b{display:block;font-size:15px}
.field-chip span{display:block;font-size:13px;color:var(--muted);margin-top:3px}
.field-chip code{font-family:var(--mono);font-size:12px;color:var(--teal-ink)}

/* Procurement */
.buy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}
.buy-step{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:18px;background:#F5F5F7}
.buy-step .n{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;color:#fff;background:var(--ink)}
.buy-step p{font-size:14px;color:var(--muted);margin-top:4px}

/* Legal pages */
.prose{max-width:760px}
.prose h2{font-size:clamp(24px,2.4vw,30px);margin:44px 0 12px;letter-spacing:-.02em}
.prose h3{font-size:18px;margin:24px 0 8px}
.prose p,.prose li{font-size:17px;line-height:1.65;color:var(--ink2)}
.prose p+p{margin-top:12px}
.prose ul{margin:10px 0 0 20px}
.prose li+li{margin-top:6px}
.prose a{color:var(--teal-ink)}
.prose .meta{font-size:14px;color:var(--muted)}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.toc a{font-size:14px;font-weight:600;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.toc a:hover{border-color:var(--teal)}
.form-note{font-size:13px;color:var(--muted);margin-top:4px}
.form-note a{color:var(--teal-ink)}
.foot-legal a{color:var(--muted)}
.foot-links{display:flex;gap:16px;flex-wrap:wrap}
.foot-biz{font-size:13px;color:var(--muted);margin-top:14px;line-height:1.6}

@media (max-width:1024px){
  .hero-row{grid-template-columns:1fr;gap:36px}
  .ticker{max-width:460px}
  .trust{grid-template-columns:1fr}
  .day-bottom{grid-template-columns:1fr}
  .dash-body{grid-template-columns:1fr}.dash-side{display:none}
  .fields,.buy{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .day{padding:20px}.day-kpis{grid-template-columns:1fr 1fr}.day-kpi .v{font-size:22px}
  .dash-kpis{grid-template-columns:1fr 1fr}.dash-grid{grid-template-columns:1fr}.dash-main{padding:16px}
  .fields,.buy{grid-template-columns:1fr}
  .cx-ov .cx-chip:not(.keep){display:none}
  .cx-st{left:10px;top:10px;width:240px}
  .cx-st .cx-chip{font-size:12px;padding:7px 10px}
  .cx-legend{display:grid;gap:8px;margin-top:14px}
  .cx-legend div{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--ink2)}
  .cx-legend i{flex:none;width:10px;height:10px;border-radius:50%}
}
@media (prefers-reduced-motion:reduce){
  .cx .a,.cx .spin,.cx .flash,.cx .flash2,.cx .cx-ring{animation:none!important}
  .cx .cx-train{transform:translateX(980px)}
  .cx .cx-gate{transform:none}
  .cx .cx-s1,.cx .cx-s2,.cx .cx-s4,.cx .cx-sig,.cx .cx-pkt,.cx .cx-o4{opacity:0}
  .cx .cx-s3,.cx .cx-o1,.cx .cx-o2,.cx .cx-o3,.cx .cx-waves,.cx .cx-lights{opacity:1}
  .cx .cx-ring{transform:scale(.6);opacity:.6}
  .tk-tag i{animation:none}
  .day-ev{transition:none}
}
.cx-puff{animation:cxPuff 2.1s ease-out infinite;opacity:0;transform-box:fill-box;transform-origin:center}
@keyframes cxPuff{0%{opacity:.55;transform:translate(0,0) scale(.5)}100%{opacity:0;transform:translate(-30px,-40px) scale(1.8)}}
.cx-cloud{animation:cxCloud 40s linear infinite alternate}.cx-cloud.c2{animation-duration:55s}
@keyframes cxCloud{to{transform:translateX(60px)}}
.cx.paused .cx-puff,.cx.paused .cx-cloud,.cx.paused .cx-ring{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.cx .cx-puff,.cx .cx-cloud{animation:none!important}.cx .cx-puff{opacity:0}}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
@media (max-width:1024px){.grid-4{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.grid-4{grid-template-columns:1fr}}
@media (max-width:640px){
  .cx-st{left:8px;top:8px;width:190px;height:30px}
  .cx-st .cx-chip{font-size:11px;padding:5px 9px;border-radius:10px;gap:7px}
  .cx-st .cx-chip small{display:none}
  .cx-st .cx-chip i{width:8px;height:8px}
  .cx{border-radius:20px}
}
.hero-row{align-items:center}
.day-ctl{flex-wrap:wrap}
@media (max-width:640px){
  .dash-log th:nth-child(4),.dash-log td:nth-child(4){display:none}
  .dash-log th{padding-right:8px}
}

/* ════════════ City lookup ════════════ */
.lookup{border-radius:var(--r-xl);padding:28px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.95);box-shadow:0 30px 80px rgba(17,24,39,.12),inset 0 1px 0 #fff;backdrop-filter:blur(24px) saturate(1.7);-webkit-backdrop-filter:blur(24px) saturate(1.7)}
.lk-search{display:flex;gap:10px}
.lk-search input{flex:1;font:inherit;font-size:18px;padding:16px 18px 16px 46px;border-radius:16px;border:1px solid var(--line);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236E6E73' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") 16px 50%/20px no-repeat}
.lk-search input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(30,58,90,.12)}
.lk-msg{font-size:14px;color:var(--ink2);margin-top:10px;min-height:1px}
.lk-msg a{color:var(--teal-ink)}
.lk-chips{margin-top:16px;display:grid;gap:10px}
.lk-chips .grp{display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:start}
.lk-chips .chips{display:flex;flex-wrap:wrap;gap:8px}
.lk-chips .grp>span{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding-top:11px}
.lk-search .btn{padding:0 26px}
.lk-chip{display:inline-flex;align-items:center;font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.lk-chip:hover{border-color:var(--teal)}
.lk-chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.lk-chip.hot{border-color:rgba(179,38,30,.35)}
#lookup-result{margin-top:22px;scroll-margin-top:100px}
.lk-card{border-radius:var(--r-xl);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:32px;animation:lkIn .45s cubic-bezier(.2,.8,.2,1)}
@keyframes lkIn{from{opacity:0;transform:translateY(10px)}}
.lk-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap}
.lk-head h2{font-size:clamp(32px,4vw,48px);margin-top:2px}
.lk-line{font-size:19px;color:var(--ink2);margin-top:8px;max-width:52ch}
.lk-acts{display:flex;gap:10px;flex-wrap:wrap}
.lk-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}
.lk-stat{padding:16px 18px;border-radius:18px;background:#F5F5F7}
.lk-stat b{display:block;font-size:30px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.lk-stat span{display:block;font-size:13px;color:var(--muted);margin-top:4px;line-height:1.35}
.lk-model{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;margin-top:22px;padding:22px;border-radius:24px;background:linear-gradient(160deg,#F7F8FA,#EEF3F6)}
.lk-ctl h3{font-size:18px}
.lk-ctl .small{margin:6px 0 16px}
.lk-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lk-tile{padding:18px;border-radius:18px;color:#fff;min-height:150px;position:relative;overflow:hidden}
.lk-tile .k{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.lk-tile .v{font-size:clamp(28px,3vw,38px);font-weight:700;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums}
.lk-tile .s{font-size:13px;line-height:1.4;opacity:.88;margin-top:6px}
.t-time{background:linear-gradient(150deg,#1E3A5A,#152B44)}
.t-trade{background:linear-gradient(150deg,#1E3A5A,#152B44)}
.t-air{background:linear-gradient(150deg,#3A3F4A,#22262E)}
.lk-tile::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.08)}
.lk-queue{margin-top:12px;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid var(--line)}
.lk-q-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--ink2)}
.lk-q-key{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}
.lk-q-icons{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;min-height:16px}
.q-car,.q-trk{display:inline-block;width:14px;height:10px;border-radius:3px;background:#9AA3AF;animation:qIn .3s ease both}
.q-trk{width:20px;background:#D97706}
.lk-q-key .q-car,.lk-q-key .q-trk{animation:none}
@keyframes qIn{from{opacity:0;transform:scale(.4)}}
.lk-grid2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;margin-top:26px}
.lk-grid2 h3{font-size:18px;margin-bottom:10px}
.lk-x td{font-size:14px}.lk-x th{font-size:11px}
.lk-tog{display:flex;gap:8px;align-items:center;cursor:pointer}
.lk-tog input{width:16px;height:16px;accent-color:var(--teal)}
.lk-facts{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.lk-facts li{padding:14px 16px;border-radius:16px;background:#F5F5F7}
.lk-facts li p{font-size:15px;line-height:1.5}
.lk-facts li a{display:inline-block;font-size:12px;color:var(--teal-ink);margin-top:6px}
.lk-facts li.lk-empty{background:#FFF8EC;border:1px solid #F6E2BC}
.lk-grants{display:grid;gap:8px;margin-top:12px}
.lk-grant{display:block;padding:12px 14px;border-radius:14px;background:#F1EFE9;border:1px solid #D6D2C8;color:#1A1D21;text-decoration:none;font-size:14px;line-height:1.45}
.lk-grant span{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-ink);margin-bottom:2px}
.lk-grant:hover{border-color:var(--teal)}

/* Hot-spot board */
.hot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hot{display:flex;flex-direction:column;padding:22px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s}
.hot:hover{transform:translateY(-3px);box-shadow:0 30px 60px rgba(17,24,39,.12)}
.hot .where{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.hot .big{font-size:40px;font-weight:700;letter-spacing:-.03em;margin-top:8px;color:var(--red-ink)}
.hot .what{font-size:15px;color:var(--ink2);margin-top:4px;line-height:1.45}
.hot .go{margin-top:auto;padding-top:14px;font-size:14px;font-weight:600;color:var(--teal-ink)}
.hot .src{font-size:12px;color:var(--muted);margin-top:6px}

/* Duration chart */
.dur{display:grid;gap:10px}
.dur-row{display:grid;grid-template-columns:110px 1fr 70px;gap:12px;align-items:center;font-size:14px}
.dur-bar{height:22px;border-radius:6px;background:#EDEFF2;overflow:hidden}
.dur-bar i{display:block;height:100%;width:0;border-radius:6px;background:#9AA3AF;transition:width 1s cubic-bezier(.2,.8,.2,1)}
.dur-row.long .dur-bar i{background:linear-gradient(90deg,#C9554D,#B3261E)}
.dur.in .dur-bar i{width:var(--w)}
.dur-row .n{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}
.dur-call{display:flex;gap:16px;align-items:center;margin-top:18px;padding:16px 18px;border-radius:16px;background:#FFF1EE;border:1px solid #F6CFC7}
.dur-call b{font-size:40px;letter-spacing:-.03em;color:var(--red-ink)}

/* OKC corridor infographic */
.corr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:start}
.corr-map{position:relative;border-radius:var(--r-xl);overflow:hidden;background:linear-gradient(180deg,#EEF3F0,#E6EEF2);border:1px solid var(--line);box-shadow:var(--shadow)}
.corr-map svg{display:block;width:100%;height:auto}
.corr-train{animation:corrTrain 16s linear infinite}
@keyframes corrTrain{0%{transform:translateY(-60px)}100%{transform:translateY(760px)}}
.corr-pulse{transform-box:fill-box;transform-origin:center;animation:corrPulse 2s ease-out infinite}
@keyframes corrPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.corr-map.paused .corr-train,.corr-map.paused .corr-pulse{animation-play-state:paused}
.corr-node{cursor:pointer}
.corr-node:focus{outline:none}
.corr-node:focus-visible circle.ring{stroke:#35587C;stroke-width:3}
.corr-list{display:grid;gap:12px}
.corr-item{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:16px 18px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 6px 18px rgba(17,24,39,.05);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}
.corr-item:hover{border-color:var(--teal);transform:translateX(3px)}
.corr-item .dot{width:12px;height:12px;border-radius:50%;margin-top:6px}
.corr-item b{font-size:16px}
.corr-item p{font-size:14px;color:var(--ink2);margin-top:3px;line-height:1.45}
.corr-item small{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.grow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grow-card{padding:24px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.grow-card h3{font-size:17px}
.grow-bars{display:flex;align-items:flex-end;gap:18px;height:170px;margin-top:18px}
.grow-bars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.grow-bars i{display:block;width:100%;max-width:90px;border-radius:12px 12px 4px 4px;background:#C9D2DC;height:var(--h);transform:scaleY(0);transform-origin:bottom;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.grow-bars div.hi i{background:linear-gradient(180deg,#C9554D,#B3261E)}
.grow-bars div.mid i{background:linear-gradient(180deg,#C08A2E,#8A5A12)}
.grow-card.in .grow-bars i{transform:none}
.grow-bars b{font-size:22px;letter-spacing:-.02em;margin-bottom:6px}
.grow-bars span{font-size:12px;color:var(--muted);margin-top:8px;text-align:center}
.method{font-size:14px;color:var(--ink2);line-height:1.6}
.method li+li{margin-top:6px}

@media (max-width:1024px){
  .lk-stats{grid-template-columns:1fr 1fr}
  .lk-model{grid-template-columns:1fr}
  .lk-grid2{grid-template-columns:1fr}
  .hot-grid{grid-template-columns:1fr 1fr}
  .corr{grid-template-columns:1fr}
}
@media (max-width:640px){
  .lookup{padding:18px}
  .lk-search{flex-direction:column}
  .lk-chips .grp{grid-template-columns:1fr}.lk-chips .grp>span{padding-top:0}.lk-search .btn{padding:14px 26px}
  .lk-card{padding:20px}
  .lk-tiles{grid-template-columns:1fr}
  .lk-tile{min-height:0}
  .hot-grid,.grow{grid-template-columns:1fr}
  .dur-row{grid-template-columns:80px 1fr 56px}
  .lk-x th:nth-child(2),.lk-x td:nth-child(2){display:none}
}
@media (prefers-reduced-motion:reduce){.corr-train,.corr-pulse,.q-car,.q-trk,.lk-card{animation:none!important}.dur-bar i,.grow-bars i{transition:none}}
.sr-only{max-width:1px;max-height:1px}
table.sr-only{display:block}
.lk-grid2>div,.lk-model>div,.lk-head>div{min-width:0}
.stats4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stats4 .stat-num{font-size:clamp(34px,4vw,52px)}
@media (max-width:1024px){.stats4{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.stats4{grid-template-columns:1fr}}

/* ═════════════ v3 · utility-first layer ═════════════
   Fast, dense, predictable: flat surfaces, compact type, no autoplay motion. */
:root{--bg:#F6F7F9;--line:#E2E5EA;--line2:#D3D8DF;--shadow:0 1px 2px rgba(16,24,40,.05);--r-xl:14px;--r-lg:12px;--r-md:10px;--r-sm:8px}
body{background:var(--bg)}
.mesh{display:none!important}
/* without JS every chart shows its final state */
html:not(.js) .hbar-fill,html:not(.js) .vbar-fill,html:not(.js) .steps::before,html:not(.js) .grow-bars i,html:not(.js) .dash-hist i{transform:none}
html:not(.js) .dur-bar i{width:var(--w)}
.glass,.glass-dark,.btn-glass,.trust-item,.lookup,.ticker,.dash,.cx-chip,.sheet{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* type */
h1,.h1{font-size:clamp(28px,3.2vw,40px);line-height:1.12;letter-spacing:-.025em}
h2,.h2{font-size:clamp(22px,2.2vw,28px);line-height:1.2;letter-spacing:-.02em}
h3{font-size:17px;letter-spacing:-.01em}
.lead{font-size:17px;line-height:1.55;max-width:70ch}
.sec-head .lead{font-size:16px}
.grad,.grad-red{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important}
.grad{color:var(--teal-ink)!important}.grad-red{color:var(--red-ink)!important}
.eyebrow{font-size:12px;margin-bottom:8px}
.eyebrow::before{display:none}

/* rhythm */
.hero{padding:28px 0 20px}.page-hero{padding:28px 0 8px}
.hero h1{max-width:none}.page-hero h1{max-width:none;font-size:clamp(28px,3.2vw,40px)}
.page-hero .lead,.hero .lead{margin-top:10px}
.sec{padding:44px 0}.sec-tight{padding:28px 0}
.sec-head{gap:24px;margin-bottom:20px;align-items:end}
.hero-actions{margin-top:18px}

/* surfaces */
.card,.tile,.stat,.lk-card,.grow-card,.hot,.corr-item,.dash,.cx,.corr-map,.day{box-shadow:none!important;border:1px solid var(--line)!important;border-radius:var(--r-lg)!important}
.card{padding:20px}.tile{padding:18px;min-height:0}.stat{padding:16px 18px}
.stat-num{font-size:30px;letter-spacing:-.02em}
.stat-lbl{font-size:14px}
.tile p{font-size:15px;margin-top:6px}
.ico{width:34px!important;height:34px!important;border-radius:9px!important}
.ico svg{width:18px;height:18px}
.bento,.grid-3,.grid-2,.grid-4,.stats{gap:12px}
.band{background:#1D1F23!important;border-radius:var(--r-lg)!important;padding:24px 28px!important}
.band h2{font-size:22px}.band p{font-size:15px;margin-top:4px}
.note{border-radius:var(--r-md)}
.btn{height:40px;padding:0 16px;font-size:14px;border-radius:8px;box-shadow:none!important}
.btn-sm{height:34px;padding:0 12px;font-size:13px}
.btn-ink{background:#1D1D1F}
.btn-glass,.btn-line{background:#fff!important;border:1px solid var(--line2)!important;color:var(--ink)!important}
.btn-glass:hover,.btn-line:hover{border-color:#9AA3AF!important}
.btn-line{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn-white{border-radius:8px}

/* header: logo + persistent search + fixed primary action */
.hdr{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:16px;height:56px}
.hdr .logo{font-size:17px;flex:none}
.hdr .logo-mark{width:26px;height:26px;border-radius:7px}
.hs{position:relative;flex:1;max-width:620px}
.hs-box{position:relative;display:flex;align-items:center}
.hs-box svg{position:absolute;left:11px;pointer-events:none}
.hs input{width:100%;height:38px;padding:0 44px 0 36px;border:1px solid var(--line2);border-radius:8px;background:#F8F9FB;font:inherit;font-size:15px;color:var(--ink)}
.hs input:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(30,58,90,.15)}
.hs kbd{position:absolute;right:8px;font:600 12px/1 var(--mono);color:var(--muted);border:1px solid var(--line2);border-radius:5px;padding:3px 6px;background:#fff}
.hs-list{position:absolute;left:0;right:0;top:44px;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line2);border-radius:10px;box-shadow:0 12px 32px rgba(16,24,40,.14);max-height:min(70vh,520px);overflow:auto}
.hs-list li{display:grid;grid-template-columns:76px 1fr;gap:10px;align-items:baseline;padding:8px 10px;border-radius:7px;cursor:pointer}
.hs-list li[aria-selected=true],.hs-list li:hover{background:#EEF6F5}
.hs-list .k{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.hs-list .t{font-size:14px;font-weight:600;color:var(--ink)}
.hs-list .s{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:1px}
.hs-list .empty{display:block;padding:10px;font-size:14px;color:var(--ink2)}
.hs-list mark{background:#FFF1B8;color:inherit;border-radius:2px}
.hdr-cta{flex:none;margin-left:auto}
.hdr-nav{border-top:1px solid #EEF0F3}
.hdr-nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}
.hdr-nav ul::-webkit-scrollbar{display:none}
.hdr-nav a{display:block;padding:9px 12px;font-size:14px;font-weight:500;color:var(--ink2);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent}
.hdr-nav a:hover{color:var(--ink)}
.hdr-nav a[aria-current=page]{color:var(--teal-ink);border-bottom-color:var(--teal)}
:target{scroll-margin-top:110px}

/* page head with fixed key actions */
.crumbs{font-size:13px;color:var(--muted);padding-top:18px}
.crumbs a{color:var(--ink2);text-decoration:underline;text-decoration-color:var(--line2,#c9ced6);text-underline-offset:3px}.crumbs a:hover{text-decoration-color:currentColor}
.pg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:10px 0 18px;flex-wrap:wrap}
.pg-head .sub{font-size:16px;color:var(--ink2);margin-top:6px;max-width:72ch}
.pg-actions{display:flex;gap:8px;flex-wrap:wrap}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;border:1px solid var(--line2);color:var(--ink2);background:#fff;white-space:nowrap}
.tag.documented{background:#FFF1EE;border-color:#F3C9C0;color:#9A2A1B}
.tag.funded{background:#F1EFE9;border-color:#D6D2C8;color:#0C5A52}
.tag.growth{background:#EEF3FF;border-color:#C8D6FB;color:#1E46A8}
.tag.data{background:#F3F4F6;color:#4B5563}
.tag.solved{background:#EAF7EC;border-color:#BFE3C5;color:#2F6B3F}

/* dense tables */
.dtable{width:100%;border-collapse:collapse;font-size:14px;background:#fff}
.dtable th,.dtable td{padding:8px 10px;border-bottom:1px solid #EDEFF2;text-align:left;vertical-align:top}
.dtable thead th{position:sticky;top:96px;z-index:2;background:#F8F9FB;font-size:12px;font-weight:700;color:var(--ink2);border-bottom:1px solid var(--line2);white-space:nowrap}
.dtable th.num,.dtable td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.dtable tbody tr:hover td{background:#F7FAFA}
.dtable td a{color:var(--ink);font-weight:600;text-decoration:none}
.dtable td a:hover{color:var(--teal-ink);text-decoration:underline}
.dtable .muted2{color:var(--muted);font-size:12px;display:block}
.dtable .mono{font-family:var(--mono);font-size:13px}
.sortbtn{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
.sortbtn:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}
.sortbtn::after{content:"↕";color:#A0A7B1;font-size:11px}
th[aria-sort=ascending] .sortbtn::after{content:"↑";color:var(--ink)}
th[aria-sort=descending] .sortbtn::after{content:"↓";color:var(--ink)}
.tbl-wrap{border:1px solid var(--line);border-radius:var(--r-md);overflow:auto;background:#fff}
.spec{width:100%;border-collapse:collapse;font-size:14px}
.spec th{width:38%;text-align:left;font-weight:600;color:var(--ink2);padding:8px 10px;background:#F8F9FB;border-bottom:1px solid #EDEFF2;vertical-align:top}
.spec td{padding:8px 10px;border-bottom:1px solid #EDEFF2}

/* directory: facets left, results main */
.dir{display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px;align-items:start}
.facets{position:sticky;top:110px;max-height:calc(100vh - 130px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px}
html:not(.js) .facets,html:not(.js) .rbar .js-only{display:none}
.fgroup{padding:8px 0;border-bottom:1px solid #EEF0F3}
.fgroup:last-of-type{border-bottom:0}
.fgroup h2{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.fgroup label{display:flex;align-items:center;gap:8px;font-size:14px;padding:3px 0;cursor:pointer}
.fgroup input{width:15px;height:15px;accent-color:var(--teal)}
.fgroup .ct{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.fgroup label.zero{color:#A0A7B1}
.link-btn{all:unset;cursor:pointer;color:var(--teal-ink);font-size:13px;font-weight:600}
.link-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.rbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.rbar input[type=search]{flex:1;min-width:200px;height:36px;padding:0 12px;border:1px solid var(--line2);border-radius:8px;font:inherit;font-size:14px;background:#fff}
.rbar input[type=search]:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(30,58,90,.15)}
.rbar select{height:36px;border:1px solid var(--line2);border-radius:8px;padding:0 8px;font:inherit;font-size:14px;background:#fff}
.rcount{font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.preset{all:unset;cursor:pointer;font-size:13px;font-weight:600;padding:5px 10px;border-radius:6px;border:1px solid var(--line2);background:#fff;color:var(--ink2)}
.preset:hover{border-color:#9AA3AF}.preset[aria-pressed=true]{background:#1D1D1F;color:#fff;border-color:#1D1D1F}
.preset:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.dtable tr[hidden]{display:none}
.no-results{padding:18px;font-size:14px;color:var(--ink2)}

/* city page */
.cp{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:start}
.cp-side{position:sticky;top:110px;display:grid;gap:12px}
.box{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px}
.box h2,.box h3{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.box ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.box li a{font-size:14px;color:var(--ink2);text-decoration:none}.box li a:hover{color:var(--teal-ink);text-decoration:underline}
.cp-sec{margin-bottom:22px}
.cp-sec>h2{font-size:18px;margin-bottom:10px}
.impact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}
.imp{border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;background:#fff;border-top:3px solid var(--c)}
.imp .k{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.imp .v{font-size:26px;font-weight:700;letter-spacing:-.02em;margin-top:2px;font-variant-numeric:tabular-nums}
.imp .s{font-size:13px;color:var(--ink2);margin-top:2px}
.scn{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px}
.scn .field{margin-bottom:12px}
.scn .field label{font-size:14px}
.facts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.facts li{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;font-size:14px;line-height:1.5}
.facts li a{display:inline-block;margin-top:4px;font-size:12px;color:var(--teal-ink)}

/* click-to-play scenes */
.scene-embed{position:relative;aspect-ratio:1440/920;border-radius:var(--r-lg);overflow:hidden;background:#E9EEF3;border:1px solid var(--line)}
.scene-embed img,.scene-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.scene-embed .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:999px;background:#1D1D1F;color:#fff;font-weight:600;font-size:15px;text-decoration:none;border:0;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.scene-embed .play:hover{background:#000}
.scene-embed.playing .play,.scene-embed.playing img{display:none}
.scene-cap{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);margin-top:8px}
.ctl-row{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}

/* home */
.home-top{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:28px;align-items:start;padding:28px 0 8px}
.big-search{display:flex;gap:8px;margin-top:16px}
.big-search input{flex:1;height:48px;padding:0 14px;border:1px solid var(--line2);border-radius:10px;font:inherit;font-size:17px;background:#fff}
.big-search input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(30,58,90,.15)}
.big-search .btn{height:48px}
.quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;font-size:14px}
.quick a{padding:5px 10px;border:1px solid var(--line2);border-radius:6px;background:#fff;color:var(--ink2);text-decoration:none}
.quick a:hover{border-color:#9AA3AF;color:var(--ink)}
.kv{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.kv h2{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);background:#F8F9FB}
.kv dl{margin:0;display:grid;grid-template-columns:auto 1fr}
.kv dt{padding:9px 14px;font-weight:700;font-size:18px;font-variant-numeric:tabular-nums;border-bottom:1px solid #EEF0F3;white-space:nowrap}
.kv dd{margin:0;padding:9px 14px 9px 0;font-size:13px;color:var(--ink2);border-bottom:1px solid #EEF0F3;line-height:1.4}
.kv dd a{color:var(--muted);font-size:12px}
.trust-line{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink2);margin-top:14px}
.trust-line span{display:inline-flex;gap:6px;align-items:center}
.trust-line b{color:var(--ink)}
.steps3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.steps3 div{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px}
.steps3 b{display:block;font-size:15px;margin-bottom:4px}
.steps3 p{font-size:14px;color:var(--ink2)}
.steps3 .n{display:inline-block;font:700 12px/1 var(--mono);color:var(--teal-ink);margin-bottom:6px}

@media (max-width:1024px){
  .dir{grid-template-columns:1fr}
  .facets{position:static;max-height:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}
  .cp{grid-template-columns:1fr}.cp-side{position:static}
  .home-top{grid-template-columns:1fr}
  .scn{grid-template-columns:1fr}
}
@media (max-width:640px){
  .hdr-in{gap:10px}
  .hdr .logo span.lt{display:none}
  .hdr-cta{display:none}
  .hs kbd{display:none}
  .facets{grid-template-columns:1fr}
  .impact,.steps3{grid-template-columns:1fr}
  .dtable .hide-sm{display:none}
  .dtable thead th{top:96px}
  .big-search{flex-direction:column}.big-search input{flex:none;height:48px}
  .pg-actions{width:100%}
}
@media print{.hdr,.facets,.foot,.scene-embed{display:none}}
/* cutaway rests on an informative frame (train at the crossing) until Play */
.cx .a{animation-delay:calc(var(--CT) * -0.4)}
/* v3 fixes: sticky headers only where the page (not a scroller) scrolls; grid children may shrink */
.dtable thead th{position:static}
@media (min-width:1025px){.tbl-wrap.sticky{overflow:visible}.tbl-wrap.sticky thead th{position:sticky;top:96px}}
.dir>section,.cp>div,.home-top>div,.grid-2>section,.grid-2>div{min-width:0}
.wrap-wide{max-width:1360px}
.dtable .tag{font-size:11px;padding:2px 6px;margin:1px 2px 1px 0}
.dtable td{padding:7px 8px}.dtable th{padding:7px 8px}
#dir-table td:first-child a{white-space:nowrap}

/* ═════════════ v3.1 · autoplay + seamless flow ═════════════ */
/* Page-to-page: header stays put, content cross-fades (Chrome/Edge/Safari 18.2+; others navigate normally) */
.hdr{view-transition-name:hdr}
::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
/* Scenes autoplay in view; poster holds the frame until the scene is ready */
.scene-embed iframe{opacity:0;transition:opacity .35s ease}
.scene-embed.live iframe{opacity:1}
.scene-embed.playing img{display:block}.scene-embed.live img{visibility:hidden}
.scene-embed .sctl{position:absolute;right:10px;bottom:10px;z-index:2;display:none;height:32px;padding:0 12px;border:0;border-radius:999px;background:rgba(29,29,31,.78);color:#fff;font-weight:600;font-size:13px;line-height:1;font-family:inherit;cursor:pointer}
.scene-embed .sctl:hover,.scene-embed .sctl:focus-visible{background:#1D1D1F}
.scene-embed.live .sctl{display:inline-flex;align-items:center}
/* Fixed-width live pills so changing text never moves anything (CLS) */
.tk-s{min-width:132px;text-align:center}
.dash-pill{min-width:200px;justify-content:center}
[data-count]{font-variant-numeric:tabular-nums}
/* Home: live board under the lookup */
.home-top .ticker{border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:14px;max-width:none;margin-top:18px;display:grid;grid-template-columns:1fr 1fr;column-gap:8px}
.home-top .tk-head,.home-top .tk-foot,.home-top .tk-note{grid-column:1/-1}
.home-top .tk-head{margin-bottom:4px}
.home-top .tk-row{background:#F8F9FB;border-radius:8px;padding:8px 10px;font-size:14px;margin-top:5px}
.home-top .tk-note{margin-top:8px}
.tk-clock{white-space:nowrap}
@media (max-width:640px){.home-top .ticker{grid-template-columns:1fr}.big-search input{flex:none;height:48px}}
/* Previous / next */
.pgflow{border-top:1px solid var(--line);background:#fff;margin-top:28px}
.pgflow .wrap{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:16px;padding-bottom:16px}
.pgflow a{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);text-decoration:none;color:var(--ink);background:#fff;min-width:0;transition:border-color .15s,background .15s}
.pgflow a:hover{border-color:var(--ink2);background:#FAFBFC}
.pgflow a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.pgflow small{font-size:12px;color:var(--muted);font-weight:600}
.pgflow b{font-size:16px;letter-spacing:-.01em}
.pgflow span{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pgflow .pf-next{text-align:right}
@media (max-width:640px){.pgflow .wrap{grid-template-columns:1fr}.pgflow .pf-next{text-align:left}}
@media print{.pgflow{display:none}}
.box .hbar{grid-template-columns:160px 1fr 40px}
@media (max-width:640px){.box .hbar{grid-template-columns:120px 1fr 34px;gap:8px}.box .hbar-lbl{font-size:13px}}
/* v4:start */
/* ═════════════ v4 · civic engineering ═════════════
   Paper, ink, one navy accent, signal red for alerts only. Public Sans + IBM Plex Mono (SIL OFL, self-hosted).
   Square corners, no shadows, no gradients, no glass, no hover motion. */
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:optional;src:url(/assets/fonts/public-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:optional;src:url(/assets/fonts/public-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:optional;src:url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:optional;src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

:root{
  --paper:#F4F2ED; --panel:#FBFAF7; --panel2:#EFECE5;
  --ink:#1A1D21; --ink2:#3D434B; --muted:#585F68; --faint:#5F656D;
  --line:#D6D2C8; --line2:#BFB9AC;
  --navy:#1E3A5A; --navy2:#35587C; --navy3:#A9B9CA;
  --signal:#B3261E; --ochre:#8A5A12; --ok:#2F6B3F;
  --bg:var(--paper); --card:var(--panel);
  --teal:var(--navy); --teal-ink:var(--navy); --teal2:var(--navy2); --blue:var(--navy2);
  --red:var(--signal); --red-ink:var(--signal); --amber:var(--ochre); --green:var(--ok);
  --r-xl:0; --r-lg:0; --r-md:0; --r-sm:0; --shadow:none;
  --font:"Public Sans",Arial,"Helvetica Neue",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}

/* global resets */
html body *{box-shadow:none!important;text-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:0!important;background-image:none!important}
html body .btn,html body input,html body select,html body textarea,html body .tag,html body .hs input,html body .big-search input,html body .preset,html body .seg button,html body kbd,html body .sctl,html body .scene-embed .play{border-radius:2px!important}
html body .dash-dot,html body .tk-tag i,html body .mx-outs li i,html body .cx-legend i,html body .flow-chip i,html body .corr-item .dot,html body .legend i,html body .lg i,html body .mx-p h3 span{border-radius:50%!important}
body{font-family:var(--font);background:var(--paper);color:var(--ink);font-size:16px;line-height:1.55;-webkit-font-smoothing:auto}
::selection{background:#C9D5E1}
:focus-visible{outline:2px solid var(--navy)!important;outline-offset:2px}
a{color:var(--navy)}

/* type */
h1,.h1,.page-hero h1{font-size:clamp(30px,3.4vw,44px);line-height:1.15;letter-spacing:-.01em;font-weight:700;max-width:28ch}
h2,.h2{font-size:clamp(22px,2.2vw,28px);line-height:1.2;letter-spacing:-.005em;font-weight:700}
h3{font-size:18px;line-height:1.3;letter-spacing:0;font-weight:700}
.lead{font-size:18px;color:var(--ink2);max-width:68ch}
.small{color:var(--muted)}
.grad,.grad-red{color:inherit!important;-webkit-text-fill-color:currentColor!important;background:none!important}
.eyebrow{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--muted);margin-bottom:10px}
.eyebrow::before{display:none}
code,kbd,.mono{font-family:var(--mono)}
.dtable td.num,.dtable th.num,.kv dt,.stat-num,.calc-big,.day-kpi .v,.dash-kpi .v{font-variant-numeric:tabular-nums lining-nums}

/* surfaces */
.sec{padding:64px 0}.sec-tight{padding:40px 0}.page-hero{padding:56px 0 24px}
.sec-white,.foot,.hdr,.card,.tile,.stat,.box,.kv,.facts li,.mx,.mx-p,.mx-p h3,.cp-sec .box,.dtable,.tbl-wrap,.ticker,.home-top .ticker,.flow-chip,.calc .card,.day,.dash,.faq,.seg button[aria-selected="true"],.pgflow,.pgflow a,.scene-embed,.cx-chip,.corr-item,.field-chip,.grow-card,.chart-card,.lk-card,.note,.mx-steps li,.mx-outs li{background-color:var(--panel)}
.sec-white{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.card,.tile,.stat,.box,.kv,.chart-card,.grow-card,.field-chip,.day,.dash,.cx,.scene-embed,.mx,.mx-p,.tbl-wrap{border:1px solid var(--line)!important}
.hdr{border-bottom:1px solid var(--line)}
.note{background-color:var(--panel2)!important;border:1px solid var(--line)!important;color:var(--ink2)!important;font-size:15px}
.note b{color:var(--ink)}

/* header & nav */
.logo-mark{background:var(--navy)!important}
.hdr-cta,.btn-ink{background:var(--navy)!important;color:#fff!important}
.btn-ink:hover,.hdr-cta:hover{background:#152B44!important}
.btn{height:42px;padding:0 16px;font-size:15px;font-weight:600;transition:none!important}
.btn-sm{height:36px;padding:0 12px;font-size:14px}
.btn:active{transform:none!important}
.btn-line,.btn-glass,.btn-white{background:var(--panel)!important;border:1px solid var(--line2)!important;color:var(--ink)!important}
.btn-line:hover,.btn-glass:hover{background:var(--panel2)!important}
.hdr-nav a[aria-current="page"],.hdr-nav a.on{color:var(--navy);border-color:var(--navy)}
.hs input,.big-search input{background:var(--panel)!important;border:1px solid var(--line2)!important}

/* links: plain, no arrows, no motion */
.link-arrow{color:var(--navy)}
.link-arrow::after{content:none!important}
a,button,.tile-link,.corr-item,.hot,.quick a,.preset,.seg button,.pgflow a,.hbar,.dtable tr,.faq summary::after{transition:none!important}
.tile-link:hover,.hot:hover,.corr-item:hover,.link-arrow:hover::after{transform:none!important}
.tile-link:hover,.corr-item:hover{border-color:var(--navy)!important}
.hbar:hover .hbar-fill{filter:none}
.faq summary::after{content:"+";transform:none!important}
.faq details[open] summary::after{content:"−";transform:none!important}

/* tags: outlined, no pastel fills */
.tag{background:transparent!important;border:1px solid currentColor;font-weight:600}
.tag.documented,.tag-documented{color:var(--signal)!important}
.tag.funded,.tag-funded,.tag.solved,.tag-solved{color:var(--ok)!important}
.tag.growth,.tag-growth{color:var(--ochre)!important}
.tag.data,.tag-data{color:var(--navy2)!important}
.quick a{background:transparent!important;border:0!important;padding:0!important;color:var(--navy)!important;text-decoration:underline;text-underline-offset:3px;font-weight:600}
.quick{gap:6px 18px!important}

/* decorative icons and orbs off */
.ico,.mesh,.orb,.dots,.step-dot{display:none!important}
.tile{min-height:0;padding:18px}
.band,.glass-dark,.calc-out{background-color:var(--ink)!important;color:#fff}
.band{border-radius:0}
.flow-core{background-color:var(--navy)!important;border-radius:0!important}
.steps::before{background-color:var(--line2)!important}

/* charts: solid fills */
.hbar-fill{background-color:var(--navy2)}.hbar.hl .hbar-fill{background-color:var(--signal)}
.vbar-fill{background-color:var(--navy3)}.vbar.hl .vbar-fill{background-color:var(--signal)}
.dash-hist i{background-color:var(--navy2)!important}
.dur-bar i{background-color:#8C96A3}.dur-row.long .dur-bar i{background-color:var(--signal)!important}
.grow-bars i{background-color:var(--navy3)}.grow-bars div.hi i{background-color:var(--signal)!important}.grow-bars div.mid i{background-color:var(--ochre)!important}
.day-night{background-color:#232A33!important}.day-night::after{display:none}
.day-ev{background-color:var(--navy2)}.day-ev.p{background-color:var(--navy3)}.day-ev.long{background-color:var(--signal)}
.day-head{background:var(--ink)!important;outline:1px solid #fff}
.day-kpi{background-color:var(--panel2)}
.day-track{background-color:var(--panel2)}
.corr-map{background-color:var(--panel2)!important}
.t-time,.t-trade,.t-air,.ti-teal,.ti-blue,.ti-indigo,.ti-crimson{background-color:var(--navy)!important}
input[type=range]{accent-color:var(--navy);background-color:var(--line)!important}
input[type=range]::-webkit-slider-thumb{background:var(--navy)}
input[type=range]::-moz-range-thumb{background:var(--navy)}

/* status pills become text + square marker; only "blocked" keeps a solid fill */
.tk-row,.home-top .tk-row{background-color:var(--panel2)!important}
.tk-s,.dash-pill{background:transparent!important;border:1px solid var(--line2);color:var(--ink)!important}
.tk-row[data-st=down] .tk-s,.dash-pill[data-st=down]{background:var(--signal)!important;border-color:var(--signal);color:#fff!important}
.tk-row[data-st=soon] .tk-s,.dash-pill[data-st=soon]{color:var(--ochre)!important;border-color:var(--ochre)}
.tk-row[data-st=clear] .tk-s,.dash-pill[data-st=clear]{color:var(--ok)!important;border-color:var(--ok)}
.tk-row[data-st=open] .tk-s{color:var(--navy)!important;border-color:var(--navy)}
.tk-tag{color:var(--muted)!important;font-family:var(--mono);font-weight:500}
.tk-tag i{background:var(--ok)!important;animation:none!important}

/* dashboard mockup: no fake window chrome */
.dash-bar i{display:none!important}
.dash-bar{background-color:var(--panel2)!important;border-bottom:1px solid var(--line)}
.dash-bar span{font-family:var(--mono);font-size:12px;color:var(--muted)}

/* cutaway overlay chips: solid labels, not glass */
.cx{background-color:#DDE4EA!important;border-radius:0}
.cx-chip{background-color:var(--panel)!important;border:1px solid var(--line2)!important;color:var(--ink)!important}
.cx-chip.dark{background-color:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important}
.cx-chip.dark small{color:#C8CDD3!important}

/* lists that used to be card rows */
.facts{display:block!important}
.facts li{border:0!important;border-top:1px solid var(--line)!important;background:transparent!important;padding:12px 0!important;max-width:880px}
.facts li:last-child{border-bottom:1px solid var(--line)!important}
.facts li a{color:var(--navy)}
.steps3{display:block!important;border-top:1px solid var(--line)}
.steps3>div{display:grid!important;grid-template-columns:180px 1fr;gap:4px 20px;padding:14px 0!important;border:0!important;border-bottom:1px solid var(--line)!important;background:transparent!important}
.steps3>div .n{grid-row:span 2;font-family:var(--mono);font-size:12px;color:var(--muted);padding-top:3px}
.steps3>div b{font-size:17px}
.steps3>div p{grid-column:2;margin:0}
@media (max-width:640px){.steps3>div{grid-template-columns:1fr}.steps3>div .n{grid-row:auto}.steps3>div p{grid-column:1}}

/* misc */
.scene-embed .play{background:var(--ink)!important}
.scene-embed .sctl{background:var(--ink)!important}
.seg{background:var(--panel2)!important;border:1px solid var(--line)}
.seg button[aria-selected="true"]{background:var(--panel)!important;color:var(--ink);outline:1px solid var(--line2)}
.preset[aria-pressed="true"]{background:var(--navy)!important;color:#fff!important;border-color:var(--navy)!important}
.foot{border-top:1px solid var(--line)}
.pgflow{background-color:var(--panel)}
.pgflow a:hover{background-color:var(--panel2)!important}
.mx-steps li,.mx-outs li{border-radius:0}
.trust-line b{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.hs-list .sk{display:block;height:12px;margin:10px 12px;background:var(--panel2);animation:skel 1.1s ease-in-out infinite alternate}
.hs-list .sk:nth-child(2){width:70%}.hs-list .sk:nth-child(3){width:50%}
@keyframes skel{from{opacity:.55}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.hs-list .sk{animation:none}}

/* card rows → ruled rows (no 3-up feature cards, no bento) */
.grid-3,.grid-4,.bento,.stats,.stats4,.steps{display:block!important;border-top:1px solid var(--line)}
.steps::before{display:none!important}
.grid-3>*,.grid-4>*,.bento>*,.stats>*,.steps>.step{display:grid!important;grid-template-columns:minmax(150px,220px) 1fr;column-gap:28px;row-gap:4px;align-items:start;padding:14px 0!important;border:0!important;border-bottom:1px solid var(--line)!important;background:transparent!important;min-height:0!important;margin:0!important;opacity:1}
.grid-3>*>*,.grid-4>*>*,.bento>*>*,.stats>*>*,.steps>.step>*{grid-column:2;margin:0!important}
.tile>h3,.tile>.num,.box>h2,.stat>.stat-num,.step>.when{grid-column:1!important;grid-row:1 / span 4}
.tile>.num{font-family:var(--font);font-size:15px;font-weight:700;color:var(--ink)}
.tile>.stat-num,.grid-3 .stat-num{font-size:22px!important;letter-spacing:0}
.stat .stat-num{font-size:28px;letter-spacing:-.01em}
.stat .stat-lbl{font-size:15px;color:var(--ink2)}
.stat .stat-src{font-size:12px}
.box>h2{font-size:17px}
.step>.when{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--muted);padding-top:3px}
.step>h3{font-size:17px}
.tile p,.box p,.step p{font-size:15px;color:var(--ink2)}
@media (max-width:640px){
  .grid-3>*,.grid-4>*,.bento>*,.stats>*,.steps>.step{grid-template-columns:1fr}
  .grid-3>*>*,.grid-4>*>*,.bento>*>*,.stats>*>*,.steps>.step>*{grid-column:1}
  .tile>h3,.tile>.num,.box>h2,.stat>.stat-num,.step>.when{grid-row:auto}
}

.buy{display:block!important;border-top:1px solid var(--line);margin-top:22px}
.buy-step{display:grid!important;grid-template-columns:44px 1fr;gap:12px;padding:12px 0!important;background:transparent!important;border-bottom:1px solid var(--line)}
.buy-step .n{width:28px;height:28px;background:transparent!important;color:var(--ink)!important;border:1px solid var(--ink);font-family:var(--mono);font-weight:500;border-radius:0!important}
.buy-step p{color:var(--ink2);font-size:15px}

/* model readouts and record fields: one table-like block, not a row of cards */
.impact{display:block!important;border:1px solid var(--line);background:var(--panel);margin-bottom:10px}
.imp{display:grid!important;grid-template-columns:110px 130px 1fr;align-items:baseline;gap:0 16px;border:0!important;border-bottom:1px solid var(--line)!important;padding:10px 14px!important;background:transparent!important}
.imp:last-child{border-bottom:0!important}
.imp .k{font-family:var(--mono);font-weight:500;font-size:12px}
.imp .v{font-size:22px;margin:0}
.imp .s{margin:0}
.fields{display:block!important;border-top:1px solid var(--line)}
.field-chip{display:grid!important;grid-template-columns:220px 1fr;gap:4px 24px;padding:12px 0!important;border:0!important;border-bottom:1px solid var(--line)!important;background:transparent!important}
.field-chip span{margin:0!important;font-size:15px;color:var(--ink2)}
@media (max-width:640px){.imp{grid-template-columns:1fr 1fr}.imp .s{grid-column:1 / -1}.field-chip{grid-template-columns:1fr}}

[hidden]{display:none!important}

/* 3D films: pre-rendered video with HTML labels, captions, cards and a synced panel */
.film-block{margin:0}
.film{margin:0;border:1px solid var(--line);background:var(--panel)}
.film-wrap{display:block}
.film-stage{position:relative;aspect-ratio:16/9;overflow:hidden;background:#C9D2DA}
.film-stage img,.film-stage video{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.film-stage video{opacity:0;transition:opacity .45s ease}
.film.live .film-stage video{opacity:1}
.film-ov{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.film-lab{position:absolute;left:0;top:0;opacity:0;font-size:13px;font-weight:700;line-height:1.2;color:var(--ink);background:var(--panel);border:1px solid var(--line2);padding:4px 8px;white-space:nowrap;will-change:transform,opacity}
.film-lab::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:calc(14px + var(--lift,0px));background:var(--ink)}
.film-tag{position:absolute;left:14px;top:14px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2);background:var(--panel);border:1px solid var(--line2);padding:3px 8px;max-width:calc(100% - 28px)}
.film-alerts{position:absolute;right:14px;top:14px;display:grid;gap:6px;opacity:0}
.film-alerts span{font-size:13px;font-weight:700;background:var(--ink);color:#fff;padding:6px 10px}
.film-cap{position:absolute;left:14px;bottom:14px;max-width:min(640px,calc(100% - 28px));margin:0;background:rgba(26,29,33,.9);color:#fff;font-size:15px;line-height:1.45;padding:10px 14px}
.film-card{position:absolute;right:14px;top:14px;width:min(330px,42%);background:var(--panel);border:1px solid var(--line2);padding:12px 14px;opacity:0;font-size:13px}
.fc-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:6px}
.fc-h b{font-size:14px}.fc-h span{font-family:var(--mono);font-size:11px;color:var(--muted)}
.fc-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px solid var(--line)}
.fc-row span{color:var(--muted)}.fc-row b{font-family:var(--mono);font-weight:500}
.fc-checks{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.fc-checks li{padding-left:22px;position:relative;color:var(--muted)}
.fc-checks li::before{content:"";position:absolute;left:0;top:2px;width:13px;height:13px;border:1px solid var(--line2);background:var(--panel)}
.fc-checks li.on{color:var(--ink)}.fc-checks li.on::before{background:var(--navy);border-color:var(--navy)}
.fc-checks li.on::after{content:"";position:absolute;left:4px;top:4px;width:4px;height:7px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.film-panel{background:var(--panel);border-bottom:1px solid var(--line);padding:14px 16px;font-size:14px}
.fp-h{font-weight:700;margin-bottom:8px}
.fp-rows{list-style:none;margin:0;padding:0}
.fp-rows li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--line)}
.fp-rows .nm{font-weight:700;display:flex;flex-direction:column;line-height:1.2}.fp-rows .nm small{font-weight:400;color:var(--muted);font-size:12px}
.fp-rows .st{font-size:12px;font-weight:700;padding:3px 8px;border:1px solid var(--line2);color:var(--ink2);white-space:nowrap}
.fp-rows li[data-state="blocked"] .st{background:var(--signal);border-color:var(--signal);color:#fff}
.fp-rows li[data-state="coming"] .st{background:#F3E7CF;border-color:var(--ochre);color:var(--ochre)}
.fp-rows li[data-state="clear"] .st{color:var(--ok);border-color:#9DBBA5}
.fp-rows li[data-state="open"] .st{background:#E4EAF1;border-color:var(--navy3);color:var(--navy)}
.fp-lh{display:flex;justify-content:space-between;align-items:baseline;margin:12px 0 6px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.fp-lh small{text-transform:none;letter-spacing:0}
.fp-log{list-style:none;margin:0;padding:0;display:grid;gap:6px;min-height:9.5em}
.fp-log li{display:grid;grid-template-columns:auto 1fr;gap:8px;font-size:13px;line-height:1.35}
.fp-log time{font-family:var(--mono);font-size:12px;color:var(--muted)}
@media (min-width:1000px){.film-wrap.has-panel{display:grid;grid-template-columns:290px 1fr;grid-template-areas:"panel stage"}.film-wrap.has-panel .film-stage{grid-area:stage}.film-wrap.has-panel .film-panel{grid-area:panel;border-bottom:0;border-right:1px solid var(--line)}}
@media (max-width:999px){.film-panel{border-bottom:0;border-top:1px solid var(--line)}.fp-rows{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}.fp-rows li{padding:5px 0}.fp-rows .nm small{display:none}.fp-log{min-height:0}}
@media (max-width:700px){.fp-lh,.fp-log{display:none}}
.film-ch{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,6),1fr);border-top:1px solid var(--line)}
.film-ch li+li{border-left:1px solid var(--line)}
.film-ch button{width:100%;display:flex;gap:8px;align-items:baseline;padding:10px 12px;border:0;border-bottom:2px solid transparent;background:transparent;font:inherit;font-size:14px;font-weight:700;color:var(--ink2);text-align:left;cursor:pointer}
.film-ch button span{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--muted)}
.film-ch button[aria-current="step"]{color:var(--ink);background:var(--panel2);border-bottom-color:var(--navy)}
.film-ch button:hover{background:var(--panel2)}
.film-cap-m{display:none}
@media (max-width:760px){.film-ch{grid-template-columns:repeat(3,1fr)}.film-ch li:nth-child(3n+1){border-left:0}.film-ch li:nth-child(n+4){border-top:1px solid var(--line)}.film-lab{font-size:11px;padding:3px 6px}.film-alerts{right:8px;top:8px}.film-alerts span{font-size:11px;padding:4px 7px}.film-card{right:8px;top:8px;width:56%;padding:8px 10px;font-size:11px}.fc-h b{font-size:12px}}
@media (max-width:640px){.film-ov .film-cap,.film-tag{display:none}.film-cap-m{display:block;margin:0;padding:10px 12px;font-size:14px;line-height:1.45;background:var(--ink);color:#fff;min-height:calc(3 * 1.45em + 20px)}.film-card{display:none}}
@media (prefers-reduced-motion:reduce){.film-stage video{transition:none}}
/* v4:end */
