/* Packs: Camera moves (.cm-), Data motion (.dm-), Ambient backgrounds (.ab-). Keyframes are injected by js/packs/d-motion2.js */

/* ================= Camera ================= */
.cm-cam{position:absolute;inset:0;overflow:hidden}
.cm-rig{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}
.cm-sc{position:relative;overflow:hidden}
.cm-wide{display:flex}
.cm-wide>.cm-sc{flex:none}
.cm-vf{position:absolute;inset:44px;pointer-events:none;z-index:30;color:rgba(17,17,19,.45)}
.cm-vf.lt{color:rgba(255,255,255,.55)}
.cm-vf>i{position:absolute;width:64px;height:64px;border:0 solid currentColor}
.cm-vf>i:nth-child(1){left:0;top:0;border-width:5px 0 0 5px;border-top-left-radius:14px}
.cm-vf>i:nth-child(2){right:0;top:0;border-width:5px 5px 0 0;border-top-right-radius:14px}
.cm-vf>i:nth-child(3){left:0;bottom:0;border-width:0 0 5px 5px;border-bottom-left-radius:14px}
.cm-vf>i:nth-child(4){right:0;bottom:0;border-width:0 5px 5px 0;border-bottom-right-radius:14px}
.cm-rec{position:absolute;left:28px;top:22px;display:flex;align-items:center;gap:12px;font:600 24px/1 'JetBrains Mono',monospace;letter-spacing:.02em}
.cm-rec b{width:16px;height:16px;border-radius:50%;background:#EF3D6E}
/* cursor zoom */
.cm-nocur .cur-wrap{display:none}
.cm-cur{position:absolute;width:64px;height:64px;z-index:5}
.cm-cur svg{width:64px;height:64px;display:block}
.cm-rip{position:absolute;left:-18px;top:-22px;width:60px;height:60px;border-radius:50%;border:5px solid var(--ac)}
/* long page */
.cm-pgw{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 80px}
.cm-br{width:900px}
.land .cm-br{width:1320px}
.cm-view{overflow:hidden;position:relative;background:#fff}
.cm-page{will-change:transform}
.cm-lp{padding:0 50px 40px;font-size:26px;color:#111113}
.cm-lp-nav{display:flex;align-items:center;gap:16px;padding:28px 0;font-size:30px}
.cm-lp-nav .sq{width:48px;height:48px;border-radius:14px}.cm-lp-nav .sq svg{width:26px;height:26px}
.cm-lp-nav .btn{padding:14px 22px;font-size:22px}
.cm-lp-hero{text-align:center;padding:70px 0 50px}
.cm-lp-hero h1{font-size:76px;line-height:1.02;letter-spacing:-.04em;margin:28px 0 20px}
.cm-lp-hero p{color:#8B8B86;font-size:30px;margin:0 0 34px}
.cm-lp-shot{background:#F6F6F3;border-radius:26px;padding:26px}
.cm-lp-shot .kpis{margin:0 0 20px}
.cm-lp-shot .kpi{background:#fff}
.cm-lp-shot svg{width:100%;display:block}
.cm-lp-logos{display:flex;justify-content:space-between;padding:56px 10px;font-weight:800;font-size:30px;color:#B5B5B0;letter-spacing:-.02em}
.cm-lp-sec{padding:30px 0}
.cm-lp-h2{font-size:52px;font-weight:800;letter-spacing:-.03em;margin-bottom:30px}
.cm-lp-f{display:flex;gap:22px;align-items:flex-start;padding:22px 0;border-top:2px solid #EEEEEA}
.cm-lp-f b{font-size:32px}.cm-lp-f .sk{display:block}
.cm-lp-q{background:#111113;color:#fff;border-radius:26px;padding:44px;margin:30px 0}
.cm-lp-q p{font-size:40px;font-weight:700;line-height:1.2;margin:0 0 28px;letter-spacing:-.02em}
.cm-lp-q .mut{color:#8A8B92}
.cm-lp-pr{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cm-lp-pr>div{border:2px solid #EEEEEA;border-radius:22px;padding:26px}
.cm-lp-pr>div.on{border-color:var(--ac)}
.cm-lp-pr .pp{font-size:56px;font-weight:800;letter-spacing:-.04em;margin:10px 0 18px}
.cm-lp-cta{background:var(--ac);color:#fff;border-radius:26px;padding:50px;display:flex;flex-direction:column;align-items:center;gap:26px;margin:40px 0;font-size:48px;font-weight:800;letter-spacing:-.03em}
.cm-lp-cta svg{width:28px;height:28px}
.cm-lp-foot{display:flex;align-items:center;gap:20px;padding:30px 0;border-top:2px solid #EEEEEA;font-size:30px}
/* dolly */
.cm-wall{position:absolute;inset:-6%;display:grid;grid-template-columns:repeat(8,1fr);gap:26px;padding:26px;align-content:center}
.land .cm-wall{grid-template-columns:repeat(16,1fr)}
.cm-wall span{aspect-ratio:1;border-radius:30px;display:flex;align-items:center;justify-content:center;color:#fff;opacity:.9}
.cm-wall span svg{width:48%;height:48%}
.cm-dfg{position:absolute;left:50%;top:50%;margin:-280px 0 0 -260px;width:520px;height:560px;background:var(--bg);border-radius:60px;box-shadow:var(--sh);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;z-index:3}
.land .cm-dfg{margin:-230px 0 0 -220px;width:440px;height:460px}
.cm-dl{font-size:56px;font-weight:800;letter-spacing:-.03em}
/* parallax */
.cm-plx{position:absolute;inset:0}
.cm-blob{position:absolute;border-radius:50%;opacity:.14}
.cm-mcard{position:absolute;display:flex;align-items:center;gap:22px;background:#fff;border-radius:30px;padding:30px 34px;box-shadow:var(--sh);color:#111113;min-width:520px}
.land .cm-mcard{min-width:460px}
.cm-mcard .tag{margin-left:auto}
.cm-fgi{position:absolute;width:120px;height:120px;border-radius:36px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--sh2)}
.cm-fgi svg{width:60px;height:60px}
/* rack focus */
.cm-rfg{position:absolute;left:60px;right:60px;bottom:260px;display:flex;align-items:center;gap:26px;background:#fff;color:#111113;border-radius:36px;padding:38px 42px;box-shadow:var(--sh);transform:scale(1.06);z-index:4}
.land .cm-rfg{left:auto;right:120px;bottom:120px;width:760px}
.cm-rfg .sq{width:92px;height:92px;border-radius:26px}.cm-rfg .sq svg{width:48px;height:48px}
/* split */
.cm-split{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:40px}
.cm-pane{border-radius:34px;overflow:hidden;box-shadow:var(--sh);will-change:transform,filter}
/* orbit */
.cm-orb{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;perspective:1800px}
.cm-orb>div:last-child{width:780px}
.cm-ocard svg.cm-ln{width:100%;height:auto;margin-top:26px;display:block}
.land .cm-orb>div:last-child{width:720px}
.cm-osh{position:absolute;left:50%;top:50%;width:640px;height:70px;margin:360px 0 0 -320px;border-radius:50%;background:rgba(17,17,19,.14);filter:blur(18px)}
.land .cm-osh{margin-top:300px}

/* ================= Data motion ================= */
.dm-wrap{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:56px;padding:0 70px;z-index:5}
.land .dm-wrap{gap:26px}
.dm-h{font-size:78px;font-weight:800;letter-spacing:-.04em;line-height:1.02;text-align:center;max-width:920px}
.land .dm-h{font-size:56px;max-width:none}
.dm-card{--g:#EDEDEA;--t:#8B8B86;--ink2:#111113;width:920px;background:var(--card,#fff);color:#111113;border-radius:32px;padding:40px 44px 44px;box-shadow:var(--sh);font-size:26px}
.land .dm-card{padding:30px 44px 34px}
.dk .dm-card{--g:#26272D;--t:#80818A;--ink2:#F4F4F2;background:#17181C;color:#F4F4F2}
.th-accent .dm-card{--g:#EDEDEA;--t:#8B8B86;--ink2:#111113;background:#fff;color:#111113}
.dm-hd{display:flex;align-items:center;gap:16px;margin-bottom:26px}
.land .dm-hd{margin-bottom:16px}
.dm-t{font-size:34px;font-weight:750;letter-spacing:-.02em}
.dm-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:999px;font-size:21px;font-weight:650;background:var(--g);color:var(--t);white-space:nowrap}
.dm-tag svg{width:20px;height:20px}
.dm-svg{width:100%;height:auto;display:block;overflow:visible}
.land .dm-svg{max-height:560px}
.dm-gl{stroke:var(--g);stroke-width:2}
.dm-trk{stroke:var(--g)}
.dm-lb{fill:var(--t);font:600 22px 'Inter Tight',sans-serif}
.dm-lbb{fill:var(--ink2);font:800 28px 'Inter Tight',sans-serif}
.dm-leg{display:flex;flex-wrap:wrap;gap:26px;margin-top:22px;font-size:22px;font-weight:600;color:var(--t)}
.dm-leg span{display:flex;align-items:center;gap:10px}
.dm-leg i{width:18px;height:18px;border-radius:6px}
.dm-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;font-size:22px;font-weight:700;background:var(--g);color:var(--t);white-space:nowrap}
.dm-chip svg{width:22px;height:22px;stroke-width:2.6}
.dm-chip.ok{background:#DDF3EA;color:#0B7A58}.dm-chip.bad{background:#FBE3E4;color:#B4262B}
.dk .dm-chip.ok{background:rgba(15,163,127,.18);color:#5FD8B0}.dk .dm-chip.bad{background:rgba(239,61,110,.18);color:#FF8FA9}
.dm-fl{font-size:22px;font-weight:600;color:var(--t)}
.dm-sv{font-size:48px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.d2n{font-variant-numeric:tabular-nums}
/* race */
.dm-race{position:relative}
.dm-rr{position:absolute;left:0;right:0;top:0;height:84px}
.dm-rb{height:84px;border-radius:18px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:#fff;font-size:28px;min-width:0;overflow:hidden;white-space:nowrap}
.dm-rb span{font-weight:800;font-variant-numeric:tabular-nums}
.dm-hd .dm-tag .d2n{font-size:26px;font-weight:800;color:var(--ink2)}
/* donut */
.dm-donut{display:flex;align-items:center;gap:44px}
.dm-dw{position:relative;width:380px;height:380px;flex:none}
.dm-dw svg{width:100%;height:100%;display:block}
.dm-dc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.dm-dc b{font-size:58px;letter-spacing:-.04em}.dm-dc small{font-size:22px;color:var(--t);font-weight:600}
.dm-dl{flex:1;display:flex;flex-direction:column;gap:22px}
.dm-dl>div{display:flex;align-items:center;gap:14px;font-size:28px;font-weight:600}
.dm-dl i{width:22px;height:22px;border-radius:7px}
.dm-dl b{margin-left:auto;font-size:32px}
/* choropleth */
.dm-hx{fill:var(--g)}
.dm-tip{fill:#111113}.dk .dm-tip{fill:#F4F4F2}
.dm-tipt{fill:#fff;font:800 30px 'Inter Tight',sans-serif}.dk .dm-tipt{fill:#111113}
.dm-scale{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:22px;font-weight:600;color:var(--t)}
.dm-scale i{width:48px;height:22px;border-radius:6px}
.dm-scale span:first-child{margin-right:8px}.dm-scale span:last-child{margin-left:8px}
.dm-md{fill:var(--g)}
/* counter */
.dm-big{text-align:center;display:flex;flex-direction:column;align-items:center;gap:30px}
.dm-bk{display:flex;align-items:center;gap:14px;font-size:36px;font-weight:650;color:var(--mute)}
.dm-bk svg{width:40px;height:40px;color:var(--ac)}
.dm-bn{font-size:210px;font-weight:800;letter-spacing:-.06em;line-height:.95;font-variant-numeric:tabular-nums}
.land .dm-bn{font-size:220px}
.dm-big .dm-chip{font-size:30px;padding:12px 26px}
.dm-big .dm-chip svg{width:30px;height:30px}
/* flip */
.dm-flips{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;width:980px}
.dm-fc{perspective:1400px;height:420px}
.dm-fi{position:relative;width:100%;height:100%;transform-style:preserve-3d}
.dm-ff{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;color:#111113;border-radius:30px;box-shadow:var(--sh);padding:34px 30px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.dm-ff.b{transform:rotateX(180deg)}
.dm-ff .dm-fl{margin-top:14px;color:#8B8B86}
.dm-fv{font-size:76px;font-weight:800;letter-spacing:-.04em;line-height:1}
.dm-ff .dm-chip{margin-top:auto}
.dm-ff .dm-chip.ok{background:#DDF3EA;color:#0B7A58}.dm-ff .dm-chip.bad{background:#FBE3E4;color:#B4262B}
/* sparkline rows */
.dm-sr{display:flex;align-items:center;gap:26px;padding:24px 0;border-top:2px solid var(--g)}
.dm-sr:first-of-type{border-top:0}
.dm-sp{width:300px;height:100px;overflow:visible}
/* gauge */
.dm-gauge{width:580px;margin:10px auto 6px}
.dm-gi{position:relative}
.dm-gi svg{width:100%;display:block}
.dm-ndl{position:absolute;left:50%;top:90.625%;width:12px;height:200px;margin:-200px 0 0 -6px;border-radius:6px;background:var(--ink2);transform-origin:50% 100%}
.dm-hub{position:absolute;left:50%;top:90.625%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:var(--ink2)}
.dm-gv{text-align:center;font-size:84px;font-weight:800;letter-spacing:-.04em;margin-top:6px}
.dm-gv small{font-size:30px;color:var(--t);margin-left:10px;letter-spacing:0}
/* funnel */
.dm-fun{display:flex;flex-direction:column;align-items:center;gap:6px}
.dm-fr{height:92px;border-radius:20px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;color:#fff;font-size:30px;transform-origin:50% 50%}
.dm-fr .d2n{font-weight:800}
.dm-cv{display:flex;align-items:center;gap:6px;font-size:22px;font-weight:700;color:var(--t);padding:4px 0}
.dm-cv svg{width:22px;height:22px}
/* leaderboard */
.dm-ldr{position:relative}
.dm-lr{position:absolute;left:0;right:0;top:0;height:92px;display:flex;align-items:center;gap:20px;padding:0 22px;border-radius:20px;background:var(--card,#fff);font-size:28px}
.dm-lr:not(.on){box-shadow:inset 0 -2px 0 var(--g)}
.dm-lr.on{background:var(--ac);color:#fff;box-shadow:var(--sh2)}
.dm-lr.on .dm-chip.ok{background:rgba(255,255,255,.22);color:#fff}
.dm-rk{width:44px;font-weight:800;font-size:30px;color:var(--t)}
.dm-lr.on .dm-rk{color:#fff}
.dm-sc{font-weight:800;font-variant-numeric:tabular-nums;min-width:120px;text-align:right}
/* rings */
.dm-rings{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.dm-ring{display:flex;flex-direction:column;align-items:center;gap:16px}
.dm-rw{position:relative;width:230px;height:230px}
.dm-rw svg{width:100%;height:100%}
.dm-rv{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:52px;font-weight:800;letter-spacing:-.03em}
.dm-rl{display:flex;align-items:center;gap:10px;font-size:26px;font-weight:650;color:var(--t)}
.dm-rl svg{width:26px;height:26px}
/* ticker */
.dm-tape{margin:26px -44px -44px;overflow:hidden;border-top:2px solid var(--g);padding:22px 0;border-radius:0 0 32px 32px}
.land .dm-tape{margin-bottom:-34px}
.dm-tape>div{display:flex;width:max-content}
.dm-tape span{display:flex;gap:12px;padding:0 30px;font-size:24px;font-family:'JetBrains Mono',monospace}
.dm-tape em{font-style:normal;font-weight:600}.dm-tape em.ok{color:#0FA37F}.dm-tape em.bad{color:#EF3D6E}
/* before/after */
.dm-ba{display:flex;flex-direction:column;gap:28px}
.dm-bar .row{font-size:26px;margin-bottom:10px}
.dm-bt{height:26px;border-radius:13px;background:var(--g);margin-top:8px;overflow:hidden}
.dm-bt i{display:block;height:100%;border-radius:13px;transform-origin:0 50%}
/* waffle */
.dm-waf{display:flex;align-items:center;gap:44px}
.dm-wg{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;width:520px;flex:none}
.dm-wg i{aspect-ratio:1;border-radius:9px;background:var(--g)}
.dm-wg i.on{background:var(--ac)}
.dm-wn b{display:block;font-size:130px;letter-spacing:-.06em;line-height:1;font-variant-numeric:tabular-nums}
.dm-wn small{display:block;font-size:28px;color:var(--t);font-weight:600;margin-top:16px;line-height:1.25}
.land .dm-card:has(.dm-waf){width:1100px}
.land .dm-card:has(.dm-donut){width:1000px}

/* ================= Ambient ================= */
.ab-l{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.ab-hl{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;text-align:center;padding:0 90px;z-index:5}
.ab-k{font-size:34px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.th-accent .ab-k{color:rgba(255,255,255,.7)}
.ab-t{font-size:132px;font-weight:800;letter-spacing:-.05em;line-height:.98;max-width:900px}
.land .ab-t{font-size:128px;max-width:1400px}
.ab-t em{font-style:normal;color:var(--ac)}
.th-accent .ab-t em,.th-navy .ab-t em,.th-dark .ab-t em{color:var(--ac2)}
.ab-s{display:inline-flex;align-items:center;gap:12px;padding:14px 28px;border-radius:999px;background:var(--soft);font-size:28px;font-weight:650}
.ab-s svg{width:28px;height:28px;color:var(--ac)}
.th-accent .ab-s svg{color:#fff}
.ab-grid>div{position:absolute;inset:-80px}
.ab-grid,.ab-tiles{-webkit-mask-image:radial-gradient(ellipse 75% 65% at 50% 50%,#000 30%,transparent 90%);mask-image:radial-gradient(ellipse 75% 65% at 50% 50%,#000 30%,transparent 90%)}
.ab-p{position:absolute;bottom:-40px;border-radius:50%;background:var(--ac);--rise:-2000px}
.land .ab-p{--rise:-1160px}
.ab-dots{opacity:.14}
.ab-band{position:absolute;top:-50%;left:0;width:34%;height:200%;background:#fff;filter:blur(70px)}
.ab-grain svg{position:absolute;left:-15%;top:-15%;width:130%;height:130%}
.ab-soft i{position:absolute;border-radius:50%;filter:blur(40px)}
.ab-orb>div{position:absolute;left:50%;top:50%;border:3px solid #fff;border-radius:50%}
.ab-orb b{position:absolute;left:50%;top:-12px;width:22px;height:22px;margin-left:-11px;border-radius:50%}
.ab-wave svg{position:absolute;left:0;top:0;width:200%;height:100%}
.ab-wave path{fill:none;stroke:#fff;stroke-width:4}
.ab-scan{position:absolute;left:0;right:0;top:0;height:4px;background:#fff}
.ab-bokeh i{position:absolute;border-radius:50%;filter:blur(10px);transform:translate(-50%,-50%)}
.ab-stars>div{position:absolute;inset:0;width:200%}
.ab-stars i{position:absolute;border-radius:50%;background:#fff}
.ab-rays svg{position:absolute;left:50%;top:50%;width:3200px;height:3200px;margin:-1600px 0 0 -1600px}
.ab-topo svg{position:absolute;left:50%;top:50%;width:2200px;height:2200px;margin:-1100px 0 0 -1100px}
.ab-words{display:flex;flex-direction:column;justify-content:center}
.ab-words div{display:flex;white-space:nowrap;font:800 220px/1.1 'Inter Tight',sans-serif;color:transparent;-webkit-text-stroke:3px #111113;width:max-content}
.ab-tiles{display:grid;grid-template-columns:repeat(8,1fr);gap:24px;padding:24px;align-content:start}
.land .ab-tiles{grid-template-columns:repeat(14,1fr)}
.ab-tiles i{aspect-ratio:1;border-radius:22px;background:#111113}
.ab-words span{padding-right:.35em}
