/* ==========================================================================
   VideoCrypt marketing site — shared styles
   Brand tokens mirror the AI Suite prototype (assets/css/app.css).
   Dark (navy) default + Light via [data-theme]. Vanilla, no build step.
   Fonts are loaded via <link> in each page head (not @import) so they don't
   block the CSS render chain — see the perf notes in docs/VERIFICATION.md.
   ========================================================================== */

/* ---- Feature color identity (theme-independent) ---- */
:root{
  --orange:#F5821F; --orange-d:#c75a06; --blue:#4da3ff;
  --c-scene:#4da3ff; --c-transcribe:#38d0e6; --c-moment:#9b8cff; --c-highlight:#34d39a;
  --c-transform:#e07bff; --c-dub:#f7b73c; --c-mam:#4da3ff; --c-live:#ff5a5f;
  --c-vod:#34d39a; --c-drm:#f76d6d; --c-ads:#f7b73c; --c-workflow:#7d7bf5;
  --c-player:#23b9ad; --c-mod:#9b8cff;
  --green:#34d39a; --amber:#f7b73c; --red:#f76d6d; --violet:#9b8cff; --cyan:#38d0e6; --magenta:#e07bff;
  --r:14px; --r-sm:10px; --r-lg:22px;
  --font:'Hanken Grotesk',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --display:'Bricolage Grotesque',var(--font);
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --maxw:1200px;
}

/* ---- DARK (default) ---- */
:root,[data-theme="dark"]{
  --bg:#070c18; --bg2:#0a1122; --panel:#0f1830; --panel2:#152038; --panel3:#1d2a48;
  --line:rgba(110,140,210,.12); --line2:rgba(125,155,225,.22);
  --txt:#eaf0fb; --txt2:#9fb0d0; --txt3:#5f7099; --help:#6c7da4;
  --osoft:rgba(245,130,31,.15); --bsoft:rgba(77,163,255,.13); --feat-ink:#04101f;
  --glow1:rgba(77,163,255,.14); --glow2:rgba(245,130,31,.07);
  --shadow:0 18px 40px rgba(0,0,0,.5); --shadow-sm:0 8px 24px rgba(0,0,0,.35);
  --nav-bg:rgba(9,14,28,.72);
}
/* ---- LIGHT ---- */
[data-theme="light"]{
  --bg:#eef1f8; --bg2:#ffffff; --panel:#ffffff; --panel2:#f4f6fc; --panel3:#e7ecf6;
  --line:rgba(28,52,110,.12); --line2:rgba(28,52,110,.2);
  --txt:#142039; --txt2:#4e5e7e; --txt3:#8593ac; --help:#7d8ba4;
  --osoft:rgba(245,130,31,.12); --bsoft:rgba(77,163,255,.12); --feat-ink:#ffffff;
  --glow1:rgba(77,163,255,.10); --glow2:rgba(245,130,31,.06);
  --shadow:0 18px 40px rgba(28,52,110,.14); --shadow-sm:0 8px 24px rgba(28,52,110,.10);
  --nav-bg:rgba(255,255,255,.78);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
body{
  font-family:var(--font);background:var(--bg);color:var(--txt);
  -webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden;
  transition:background .25s,color .25s;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(880px 560px at 8% -6%,var(--glow1),transparent 60%),
    radial-gradient(720px 520px at 96% 2%,var(--glow2),transparent 60%);
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.02em;line-height:1.1;margin:0}
p{margin:0}
::selection{background:var(--osoft);color:var(--txt)}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}

/* ---- Layout helpers ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;position:relative;z-index:1}
.section{padding:88px 0;position:relative}
.section.tight{padding:56px 0}
.center{text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
.eyebrow.blue{color:var(--blue)}
.sec-head{max-width:720px;margin:0 auto 52px}
.sec-head.left{margin-left:0}
.sec-head h2{font-size:clamp(28px,4vw,42px);font-weight:700}
.sec-head p{color:var(--txt2);font-size:clamp(15px,1.4vw,17px);margin-top:16px}
.grad-text{background:linear-gradient(120deg,var(--orange),var(--magenta) 55%,var(--blue));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:46px;padding:0 22px;
  border-radius:12px;font-family:inherit;font-weight:700;font-size:14.5px;cursor:pointer;
  border:1px solid transparent;white-space:nowrap;transition:transform .12s,box-shadow .18s,background .18s,border-color .18s}
.btn:active{transform:translateY(1px)}
.btn-sm{height:40px;padding:0 16px;font-size:13.5px}
.btn-lg{height:52px;padding:0 28px;font-size:15.5px}
.btn-primary{background:linear-gradient(145deg,var(--orange),var(--orange-d));color:#fff;
  box-shadow:0 10px 26px rgba(245,130,31,.32)}
.btn-primary:hover{box-shadow:0 14px 34px rgba(245,130,31,.42);transform:translateY(-1px)}
.btn-outline{background:transparent;border-color:var(--line2);color:var(--txt)}
.btn-outline:hover{border-color:var(--orange);color:var(--orange)}
.btn-ghost{background:var(--panel2);border-color:var(--line);color:var(--txt)}
.btn-ghost:hover{border-color:var(--line2)}

/* ---- Skip link (accessibility) ---- */
.skip-link{position:fixed;top:-64px;left:12px;z-index:2000;background:linear-gradient(145deg,var(--orange),var(--orange-d));
  color:#fff;font-weight:700;font-size:14px;padding:11px 18px;border-radius:0 0 12px 12px;text-decoration:none;
  box-shadow:var(--shadow);transition:top .16s}
.skip-link:focus{top:0;outline:2px solid #fff;outline-offset:-4px}
#main{scroll-margin-top:82px}
#main:focus{outline:none}

/* ---- Top nav ---- */
.nav{position:sticky;top:0;z-index:100;background:var(--nav-bg);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);transition:background .25s,border-color .25s}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:0 24px;height:66px;
  display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;
  font-size:19px;letter-spacing:-.02em;color:var(--txt)}
.brand .o{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;
  background:linear-gradient(145deg,var(--orange),var(--orange-d));color:#fff;font-size:11px}
.brand .word b{font-weight:800}
.nav-links{display:flex;align-items:center;gap:4px;margin-left:8px}
.nav-item{position:relative}
.nav-link{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:10px;
  color:var(--txt2);font-weight:600;font-size:14.5px;cursor:pointer;transition:.14s}
.nav-link:hover{color:var(--txt);background:var(--panel2)}
.nav-link .caret{font-size:10px;opacity:.7;transition:transform .18s}
.nav-item:hover .caret{transform:rotate(180deg)}
.nav-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.icon-btn{width:42px;height:42px;border-radius:11px;border:1px solid var(--line);background:var(--panel);
  color:var(--txt2);cursor:pointer;display:grid;place-items:center;font-size:16px;transition:.14s}
.icon-btn:hover{color:var(--txt);border-color:var(--line2)}

/* dropdown mega-menu */
.dropdown{position:absolute;top:52px;left:0;min-width:300px;background:var(--panel);
  border:1px solid var(--line2);border-radius:16px;box-shadow:var(--shadow);padding:10px;
  opacity:0;visibility:hidden;transform:translateY(6px);transition:.16s;z-index:120}
.nav-item:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown.wide{min-width:560px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.dd-col-label{grid-column:1/-1;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--txt3);padding:10px 12px 4px}
.dd-item{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:11px;transition:.13s}
.dd-item:hover{background:var(--panel2)}
.dd-ico{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:15px;flex:none;
  background:color-mix(in srgb,var(--feat,var(--blue)) 16%,transparent);color:var(--feat,var(--blue))}
.dd-txt strong{display:block;font-size:13.5px;font-weight:700;color:var(--txt)}
.dd-txt span{display:block;font-size:12px;color:var(--txt3);margin-top:1px}

/* mobile nav */
.hamburger{display:none;width:42px;height:42px;border-radius:11px;border:1px solid var(--line);
  background:var(--panel);color:var(--txt);cursor:pointer;font-size:18px}
.mobile-menu{display:none;border-top:1px solid var(--line);background:var(--bg2);padding:14px 24px 24px}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:12px 6px;font-weight:600;font-size:16px;color:var(--txt);
  border-bottom:1px solid var(--line)}
.mobile-menu .m-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.mobile-menu .m-actions .btn{width:100%}

/* ---- Hero ---- */
.hero{padding:72px 0 84px;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:999px;
  background:var(--panel2);border:1px solid var(--line2);font-size:12.5px;font-weight:600;color:var(--txt2);margin-bottom:22px}
.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}
.hero h1{font-size:clamp(34px,5.4vw,58px);font-weight:800;letter-spacing:-.03em}
.hero .lede{color:var(--txt2);font-size:clamp(16px,1.6vw,19px);margin-top:22px;max-width:560px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-trust{display:flex;flex-wrap:wrap;gap:22px;margin-top:34px;color:var(--txt3);font-size:13px;font-weight:600}
.hero-trust span{display:inline-flex;align-items:center;gap:8px}
.hero-trust i{color:var(--green)}

/* hero visual — layered module cards */
.hero-visual{position:relative;min-height:420px}
.hv-card{position:absolute;background:linear-gradient(165deg,var(--panel),var(--bg2));
  border:1px solid var(--line2);border-radius:16px;box-shadow:var(--shadow);padding:16px 18px}
.hv-card .row{display:flex;align-items:center;gap:12px}
.hv-ico{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:17px;flex:none;
  background:color-mix(in srgb,var(--feat) 18%,transparent);color:var(--feat)}
.hv-card b{font-size:13.5px;display:block}
.hv-card small{font-size:11px;color:var(--txt3);font-family:var(--mono)}
.hv-bar{height:6px;border-radius:4px;background:var(--panel3);margin-top:12px;overflow:hidden}
.hv-bar i{display:block;height:100%;border-radius:4px;background:var(--feat)}

/* ---- Logos / trust strip ---- */
.logos{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.logos .wrap{display:flex;align-items:center;justify-content:center;gap:44px;flex-wrap:wrap;padding:26px 24px}
.logos p{width:100%;text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--txt3);margin-bottom:4px}
.logos span{font-weight:700;font-size:17px;color:var(--txt3);opacity:.75;font-family:var(--display)}

/* ---- Cards / grids ---- */
.grid{display:grid;gap:20px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.card{background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line);
  border-radius:var(--r);padding:24px;transition:transform .16s,border-color .16s,box-shadow .16s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-3px);border-color:var(--line2);box-shadow:var(--shadow-sm)}
.card-ico{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;font-size:21px;margin-bottom:16px;
  background:color-mix(in srgb,var(--feat,var(--blue)) 16%,transparent);
  color:var(--feat,var(--blue));border:1px solid color-mix(in srgb,var(--feat,var(--blue)) 28%,transparent)}
.card h3{font-size:17px;font-weight:700}
.card p{color:var(--txt2);font-size:13.5px;margin-top:8px}
.card .more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;font-weight:700;
  color:var(--feat,var(--blue));opacity:0;transform:translateX(-4px);transition:.16s}
.card:hover .more{opacity:1;transform:translateX(0)}
.card .tag{position:absolute;top:16px;right:16px;font-size:9px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;font-family:var(--mono);padding:3px 7px;border-radius:6px;
  background:var(--panel3);color:var(--txt3)}
.card .tag.soon{background:var(--osoft);color:var(--orange)}

/* module card compact variant */
.mod-card{padding:20px}
.mod-card .card-ico{width:42px;height:42px;font-size:18px;border-radius:11px;margin-bottom:13px}
.mod-card h3{font-size:15.5px}
.mod-card p{font-size:12.5px;margin-top:6px}

/* ---- Product cards ---- */
.product{display:flex;flex-direction:column;background:linear-gradient(170deg,var(--panel),var(--bg2));
  border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:.16s}
.product:hover{border-color:var(--line2);box-shadow:var(--shadow-sm);transform:translateY(-3px)}
.product-top{padding:26px 26px 22px;border-bottom:1px solid var(--line)}
.product-top .kind{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--feat,var(--blue))}
.product-top h3{font-size:21px;font-weight:700;margin-top:8px}
.product-top p{color:var(--txt2);font-size:13.5px;margin-top:10px}
.product-body{padding:22px 26px 26px;display:flex;flex-direction:column;gap:11px;flex:1}
.product-body .feat{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--txt2)}
.product-body .feat i{color:var(--feat,var(--blue));font-size:13px;margin-top:3px}
.product-body .btn{margin-top:auto}

/* ---- Player SDK feature block ---- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.feature-list{display:flex;flex-direction:column;gap:18px;margin-top:26px}
.feature-list .fl{display:flex;gap:14px;align-items:flex-start}
.feature-list .fl-ico{width:40px;height:40px;border-radius:11px;flex:none;display:grid;place-items:center;
  font-size:17px;background:color-mix(in srgb,var(--c-player) 16%,transparent);color:var(--c-player);
  border:1px solid color-mix(in srgb,var(--c-player) 28%,transparent)}
.feature-list .fl b{font-size:15px}
.feature-list .fl p{color:var(--txt2);font-size:13px;margin-top:3px}
.mock{background:linear-gradient(165deg,var(--panel),var(--bg2));border:1px solid var(--line2);
  border-radius:var(--r-lg);padding:14px;box-shadow:var(--shadow)}
.mock .screen{aspect-ratio:16/9;border-radius:12px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#0d1730,#1b2a4d);display:grid;place-items:center}
.mock .play{width:66px;height:66px;border-radius:50%;background:rgba(245,130,31,.92);color:#fff;
  display:grid;place-items:center;font-size:24px;box-shadow:0 12px 30px rgba(245,130,31,.5)}
.mock .ctrl{display:flex;align-items:center;gap:10px;padding:12px 6px 4px;color:var(--txt3);font-size:13px}
.mock .ctrl .line{flex:1;height:5px;border-radius:3px;background:var(--panel3);position:relative}
.mock .ctrl .line::after{content:"";position:absolute;left:0;top:0;bottom:0;width:38%;border-radius:3px;background:var(--orange)}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{font-size:11.5px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--panel2);
  border:1px solid var(--line);color:var(--txt2)}

/* ---- Consumption / how-you-buy ---- */
.buy-card{background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line);
  border-radius:var(--r-lg);padding:28px}
.buy-card .n{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-family:var(--mono);
  font-weight:700;font-size:14px;background:var(--osoft);color:var(--orange);margin-bottom:16px}
.buy-card h3{font-size:18px;font-weight:700}
.buy-card p{color:var(--txt2);font-size:13.5px;margin-top:9px}
.buy-card .link{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-weight:700;
  font-size:13.5px;color:var(--orange)}

/* ---- CTA band ---- */
.cta-band{position:relative;overflow:hidden;border-radius:26px;
  background:linear-gradient(130deg,#12203f,#0c1226 60%,#160f2e);
  border:1px solid var(--line2);padding:56px;text-align:center}
[data-theme="light"] .cta-band{background:linear-gradient(130deg,#eef3ff,#fff 55%,#fdf1e6)}
.cta-band::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(600px 300px at 20% 0%,var(--glow1),transparent 60%),
             radial-gradient(600px 300px at 90% 120%,var(--glow2),transparent 60%)}
.cta-band h2{font-size:clamp(26px,3.6vw,40px);font-weight:800;position:relative}
.cta-band p{color:var(--txt2);font-size:17px;margin:16px auto 30px;max-width:560px;position:relative}
.cta-band .hero-cta{justify-content:center;position:relative}

/* ---- Stats ---- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stat{text-align:center;padding:20px}
.stat .num{font-family:var(--display);font-weight:800;font-size:clamp(30px,4vw,44px);
  background:linear-gradient(120deg,var(--orange),var(--magenta));-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent}
.stat .lbl{color:var(--txt2);font-size:13.5px;font-weight:600;margin-top:6px}

/* ---- Footer ---- */
.footer{border-top:1px solid var(--line);background:var(--bg2);padding:64px 0 34px;margin-top:20px}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:36px}
.foot-brand .brand{margin-bottom:16px}
.foot-brand p{color:var(--txt2);font-size:13px;max-width:280px}
.foot-brand .addr{color:var(--txt3);font-size:12.5px;margin-top:16px;line-height:1.6}
.foot-social{display:flex;gap:10px;margin-top:18px}
.foot-social a{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);display:grid;
  place-items:center;color:var(--txt2);transition:.14s}
.foot-social a:hover{color:var(--orange);border-color:var(--orange)}
.foot-col h4{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--txt3);font-family:var(--font);margin-bottom:14px}
.foot-col a{display:block;color:var(--txt2);font-size:13.5px;padding:6px 0;transition:.13s}
.foot-col a:hover{color:var(--txt)}
.foot-bot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:48px;padding-top:24px;border-top:1px solid var(--line);color:var(--txt3);font-size:12.5px}
.foot-bot a{color:var(--txt3)}.foot-bot a:hover{color:var(--txt2)}

/* ========================= Feature page (exemplar template) ========================= */
/* Set --feat on <body> to theme the whole page in one line. */
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.04em;
  color:var(--txt3);margin-bottom:18px}
.kicker a{color:var(--txt3)}.kicker a:hover{color:var(--feat,var(--orange))}
.kicker .fico{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:13px;
  background:color-mix(in srgb,var(--feat,var(--blue)) 18%,transparent);color:var(--feat,var(--blue))}
.kicker b{color:var(--feat,var(--blue))}

.feat-hero{padding:56px 0 72px}
.feat-hero .hero-grid{align-items:center}
.feat-hero h1{font-size:clamp(32px,4.8vw,52px);font-weight:800;letter-spacing:-.03em}
.feat-hero .lede{color:var(--txt2);font-size:clamp(16px,1.6vw,19px);margin-top:20px;max-width:560px}
.feat-badge{display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:999px;
  background:color-mix(in srgb,var(--feat,var(--blue)) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--feat,var(--blue)) 30%,transparent);
  color:var(--feat,var(--blue));font-size:12.5px;font-weight:700;margin-bottom:20px}

/* Scene-breakdown mock visual (reusable "screenshot" placeholder) */
.si-mock{background:linear-gradient(165deg,var(--panel),var(--bg2));border:1px solid var(--line2);
  border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.si-top{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);
  background:var(--panel2)}
.si-top .dot{width:10px;height:10px;border-radius:50%}
.si-top .t{margin-left:8px;font-size:12.5px;font-weight:700;color:var(--txt2)}
.si-top .live{margin-left:auto;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--feat,var(--blue));
  background:color-mix(in srgb,var(--feat,var(--blue)) 14%,transparent);padding:3px 8px;border-radius:6px}
.si-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.si-stats .s{background:var(--panel);padding:14px 12px;text-align:center}
.si-stats .s .n{font-family:var(--display);font-weight:800;font-size:22px}
.si-stats .s .l{font-size:10.5px;color:var(--txt3);font-weight:600;margin-top:2px}
.si-scenes{padding:14px 16px;display:flex;flex-direction:column;gap:9px}
.si-scene{display:flex;align-items:center;gap:12px}
.si-scene .tc{font-family:var(--mono);font-size:11px;color:var(--txt3);width:82px;flex:none}
.si-scene .track{flex:1;height:26px;border-radius:7px;background:var(--panel3);position:relative;overflow:hidden}
.si-scene .track i{position:absolute;top:0;bottom:0;border-radius:7px;opacity:.85}
.si-tags{padding:0 16px 16px;display:flex;flex-wrap:wrap;gap:7px}
.si-tag{font-size:11px;font-weight:600;padding:5px 11px;border-radius:999px;
  background:color-mix(in srgb,var(--tc,var(--blue)) 14%,transparent);color:var(--tc,var(--blue));
  border:1px solid color-mix(in srgb,var(--tc,var(--blue)) 26%,transparent)}

/* numbered steps with connector */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;position:relative}
.steps .step{position:relative}
.steps .step .sn{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-family:var(--mono);
  font-weight:700;font-size:16px;background:color-mix(in srgb,var(--feat,var(--orange)) 16%,transparent);
  color:var(--feat,var(--orange));border:1px solid color-mix(in srgb,var(--feat,var(--orange)) 30%,transparent);margin-bottom:15px}
.steps .step h3{font-size:16px;font-weight:700}
.steps .step p{color:var(--txt2);font-size:13.5px;margin-top:7px}
.steps .step:not(:last-child)::after{content:"";position:absolute;top:21px;left:52px;right:-11px;height:2px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--feat,var(--orange)) 40%,transparent),transparent)}

/* capability list with feature-colored ticks */
.caps{display:grid;grid-template-columns:1fr 1fr;gap:14px 40px}
.caps .cap{display:flex;gap:13px;align-items:flex-start;padding:4px 0}
.caps .cap .ci{width:38px;height:38px;border-radius:11px;flex:none;display:grid;place-items:center;font-size:16px;
  background:color-mix(in srgb,var(--feat,var(--blue)) 14%,transparent);color:var(--feat,var(--blue));
  border:1px solid color-mix(in srgb,var(--feat,var(--blue)) 26%,transparent)}
.caps .cap b{font-size:15px}
.caps .cap p{color:var(--txt2);font-size:13px;margin-top:2px}

/* downstream / "powers the suite" cards use .card with --feat per card */
.downstream .card .card-ico{border-radius:12px}

/* spec strip */
.specs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.specs .spec{background:linear-gradient(170deg,var(--panel),var(--bg2));padding:24px 22px}
.specs .spec i{font-size:18px;color:var(--feat,var(--orange))}
.specs .spec b{display:block;font-family:var(--display);font-weight:800;font-size:20px;margin:10px 0 4px}
.specs .spec span{color:var(--txt3);font-size:12.5px}

@media (max-width:1040px){
  .steps{grid-template-columns:1fr 1fr}
  .steps .step:not(:last-child)::after{display:none}
  .specs{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .caps{grid-template-columns:1fr}
  .steps,.specs{grid-template-columns:1fr}
  .si-stats{grid-template-columns:1fr 1fr}
}

/* ========================= Company / Contact / Legal ========================= */
.logo-wall{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.logo-cell{display:grid;place-items:center;height:88px;text-align:center;padding:10px;
  background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:var(--r);
  color:var(--txt3);font-family:var(--display);font-weight:800;font-size:15px;letter-spacing:-.01em}

.quote-card{display:flex;flex-direction:column;background:linear-gradient(170deg,var(--panel),var(--bg2));
  border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}
.quote-card .qi{font-size:24px;color:var(--feat,var(--orange));line-height:1}
.quote-card p{font-size:15px;color:var(--txt);margin:14px 0 18px;line-height:1.6;flex:1}
.quote-card .who{display:flex;align-items:center;gap:12px}
.quote-card .av{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:15px;
  color:#fff;background:linear-gradient(145deg,var(--feat,var(--blue)),color-mix(in srgb,var(--feat,var(--blue)) 55%,#1f2b48))}
.quote-card .who b{font-size:13.5px;display:block}
.quote-card .who span{font-size:12px;color:var(--txt3)}

.team{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.member{text-align:center;background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line);
  border-radius:var(--r);padding:26px 18px}
.member .av{width:64px;height:64px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;
  font-family:var(--display);font-weight:800;font-size:22px;color:#fff;
  background:linear-gradient(145deg,var(--orange),var(--orange-d))}
.member b{font-size:15px}.member span{display:block;font-size:12.5px;color:var(--txt3);margin-top:3px}

.form-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}
.contact-list{display:flex;flex-direction:column;gap:14px}
.contact-item{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(170deg,var(--panel),var(--bg2));
  border:1px solid var(--line);border-radius:var(--r);padding:18px 20px}
.contact-item .ci{width:42px;height:42px;border-radius:11px;flex:none;display:grid;place-items:center;font-size:17px;
  background:var(--osoft);color:var(--orange)}
.contact-item b{font-size:14.5px}
.contact-item p,.contact-item a{display:block;font-size:13.5px;color:var(--txt2);margin-top:3px;line-height:1.55}
.contact-item a:hover{color:var(--orange)}

.form-card{background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line2);
  border-radius:var(--r-lg);padding:30px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:12.5px;font-weight:700;color:var(--txt2)}
.field input,.field select,.field textarea{border-radius:11px;border:1px solid var(--line2);background:var(--panel2);
  color:var(--txt);font:inherit;font-size:14px;transition:border-color .14s}
.field input,.field select{height:46px;padding:0 14px}
.field textarea{min-height:120px;padding:12px 14px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--orange);outline:none}
.field input::placeholder,.field textarea::placeholder{color:var(--help)}
.form-note{grid-column:1/-1;font-size:12px;color:var(--txt3);margin-top:2px}

.legal{max-width:820px;margin:0 auto}
.legal .updated{color:var(--txt3);font-size:13px;font-family:var(--mono);margin-bottom:22px}
.legal .note{background:var(--panel2);border:1px solid var(--line2);border-radius:var(--r);padding:16px 20px;
  font-size:13.5px;color:var(--txt2);margin-bottom:30px}
.legal h2{font-family:var(--display);font-size:21px;font-weight:700;margin:34px 0 12px}
.legal h3{font-size:16px;font-weight:700;margin:22px 0 8px;color:var(--txt)}
.legal p{color:var(--txt2);font-size:15px;margin:0 0 14px;line-height:1.75}
.legal ul{color:var(--txt2);font-size:15px;line-height:1.75;padding-left:22px;margin:0 0 14px}
.legal li{margin-bottom:7px}
.legal a{color:var(--orange)}
.legal .toc{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.legal .toc a{font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--panel2);
  border:1px solid var(--line);color:var(--txt2)}
.legal .toc a:hover{border-color:var(--line2);color:var(--txt)}

@media (max-width:1040px){
  .team{grid-template-columns:repeat(2,1fr)}
  .logo-wall{grid-template-columns:repeat(3,1fr)}
  .form-wrap{grid-template-columns:1fr;gap:28px}
}
@media (max-width:560px){
  .form{grid-template-columns:1fr}
  .logo-wall{grid-template-columns:repeat(2,1fr)}
  .team{grid-template-columns:1fr}
}

/* ========================= Products page ========================= */
.modpills{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.modpill{display:inline-flex;align-items:center;gap:10px;padding:11px 16px;border-radius:999px;
  background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line);
  font-weight:700;font-size:13.5px;color:var(--txt);transition:transform .14s,border-color .14s,box-shadow .14s}
.modpill:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--feat,var(--blue)) 55%,transparent);
  box-shadow:var(--shadow-sm)}
.modpill .mp-ico{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:13px;flex:none;
  background:color-mix(in srgb,var(--feat,var(--blue)) 16%,transparent);color:var(--feat,var(--blue))}

.included{display:grid;grid-template-columns:1fr 1fr;gap:14px 40px;
  background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line);
  border-radius:var(--r-lg);padding:32px 34px}
.included .inc{display:flex;gap:11px;align-items:flex-start;font-size:14px;color:var(--txt2)}
.included .inc i{color:var(--feat,var(--green));font-size:13px;margin-top:4px;flex:none}
.included .inc b{color:var(--txt);font-weight:700}

.quote-box{display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
  background:linear-gradient(140deg,color-mix(in srgb,var(--feat,var(--orange)) 12%,var(--panel)),var(--bg2));
  border:1px solid color-mix(in srgb,var(--feat,var(--orange)) 30%,transparent);
  border-radius:var(--r-lg);padding:30px 34px}
.quote-box .qt .k{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--feat,var(--orange))}
.quote-box .qt h3{font-size:22px;font-weight:800;margin-top:8px}
.quote-box .qt p{color:var(--txt2);font-size:14px;margin-top:8px;max-width:520px}
.quote-box .qa{display:flex;gap:12px;flex-wrap:wrap}

@media (max-width:640px){.included{grid-template-columns:1fr}}

/* ========================= Pricing page ========================= */
.page-hero{padding:64px 0 8px;text-align:center}
.page-hero h1{font-size:clamp(32px,4.6vw,50px);font-weight:800}
.page-hero .lede{color:var(--txt2);font-size:clamp(16px,1.5vw,18px);margin:18px auto 0;max-width:620px}

.controls{display:flex;flex-direction:column;align-items:center;gap:18px;margin:32px 0 8px}
.seg{display:inline-flex;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:4px}
.seg button{border:0;background:0;color:var(--txt2);font-family:inherit;font-weight:700;font-size:13.5px;
  padding:9px 18px;border-radius:9px;cursor:pointer;transition:.14s;white-space:nowrap}
.seg button.on{background:var(--panel3);color:var(--txt);box-shadow:var(--shadow-sm)}
.seg.pill button.on{background:linear-gradient(145deg,var(--orange),var(--orange-d));color:#fff;box-shadow:none}

.pane{display:none}
.pane.on{display:block;animation:fade .3s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.tier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:stretch}
.tier{display:flex;flex-direction:column;background:linear-gradient(170deg,var(--panel),var(--bg2));
  border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 22px;position:relative;transition:.16s}
.tier:hover{border-color:var(--line2);box-shadow:var(--shadow-sm)}
.tier.pop{border-color:color-mix(in srgb,var(--orange) 55%,transparent);box-shadow:0 0 0 1px var(--orange),0 18px 40px rgba(245,130,31,.18)}
.tier .pop-flag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:linear-gradient(145deg,var(--orange),var(--orange-d));
  color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:999px;white-space:nowrap}
.tier .tname{font-family:var(--display);font-weight:700;font-size:19px}
.tier .tfor{color:var(--txt3);font-size:12.5px;margin-top:4px;min-height:34px}
.tier .amt{display:flex;align-items:baseline;gap:4px;margin:14px 0 4px}
.tier .amt .cur{font-size:18px;font-weight:700;color:var(--txt2)}
.tier .amt .val{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.02em}
.tier .amt .per{font-size:13px;color:var(--txt3);font-weight:600}
.tier .amt.custom .val{font-size:26px}
.tier .btn{width:100%;margin:18px 0}
.tier ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:10px}
.tier li{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--txt2)}
.tier li i{color:var(--green);font-size:12px;margin-top:3px;flex:none}
.tier li.muted{color:var(--txt3)}.tier li.muted i{color:var(--txt3)}

.price-table{width:100%;border-collapse:collapse;background:linear-gradient(170deg,var(--panel),var(--bg2));
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.price-table th,.price-table td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--line);font-size:14px}
.price-table thead th{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--txt3)}
.price-table tbody tr:last-child td{border-bottom:0}
.price-table tbody tr:hover{background:var(--panel2)}
.price-table .mod{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--txt)}
.price-table .mod .mi{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:15px;flex:none;
  background:color-mix(in srgb,var(--feat,var(--blue)) 16%,transparent);color:var(--feat,var(--blue))}
.price-table .unit{font-family:var(--mono);font-size:13px;color:var(--txt2);white-space:nowrap}
.price-table .amt{font-family:var(--display);font-weight:800;font-size:17px;white-space:nowrap}
.price-table td.act{text-align:right}
.price-note{color:var(--txt3);font-size:12.5px;margin-top:14px;text-align:center}

.estimator{margin-top:26px;background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line2);
  border-radius:var(--r-lg);padding:26px 28px}
.estimator h3{font-size:18px;font-weight:700}
.est-row{display:flex;align-items:center;gap:22px;margin-top:18px;flex-wrap:wrap}
.est-ctl{flex:1;min-width:260px}
.est-ctl label{font-size:12.5px;font-weight:700;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em}
.est-ctl .modsel{width:100%;margin-top:8px;height:44px;border-radius:11px;border:1px solid var(--line2);
  background:var(--panel2);color:var(--txt);font:inherit;font-size:14px;font-weight:600;padding:0 12px}
.est-slider{width:100%;margin-top:16px;-webkit-appearance:none;appearance:none;height:6px;border-radius:4px;
  background:var(--panel3);outline:none}
.est-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;cursor:pointer;
  background:linear-gradient(145deg,var(--orange),var(--orange-d));box-shadow:0 4px 12px rgba(245,130,31,.5)}
.est-slider::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;cursor:pointer;
  background:var(--orange);box-shadow:0 4px 12px rgba(245,130,31,.5)}
.est-out{text-align:right;min-width:220px}
.est-out .hrs{font-size:13px;color:var(--txt3);font-weight:600}
.est-out .cost{font-family:var(--display);font-weight:800;font-size:clamp(28px,3.4vw,40px);
  background:linear-gradient(120deg,var(--orange),var(--magenta));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.est-out .per{font-size:13px;color:var(--txt3);font-weight:600}

.faq{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq details{background:linear-gradient(170deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:700;font-size:15px;display:flex;
  align-items:center;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"\002B";font-size:20px;color:var(--txt3);font-weight:400}
.faq details[open] summary::after{content:"\2212"}
.faq details[open] summary{color:var(--orange)}
.faq p{padding:0 22px 20px;color:var(--txt2);font-size:14px}

@media (max-width:1040px){.tier-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){
  .price-table thead{display:none}
  .price-table,.price-table tbody,.price-table tr,.price-table td{display:block;width:100%}
  .price-table tr{border-bottom:1px solid var(--line);padding:8px 0}
  .price-table td{border:0;padding:8px 20px}
  .price-table td.act{text-align:left}
  .est-out{text-align:left;min-width:0}
}
@media (max-width:560px){.tier-grid{grid-template-columns:1fr}}

/* reveal-on-scroll — no-JS-safe: hidden only once JS marks the doc ready */
.js-reveal .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js-reveal .reveal.in{opacity:1;transform:none}

/* ---- Responsive ---- */
@media (max-width:1040px){
  .hero-grid,.split{grid-template-columns:1fr;gap:40px}
  .hero-visual{min-height:340px}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:820px){
  .nav-links{display:none}
  .nav-actions .desk{display:none}
  .hamburger{display:grid;place-items:center}
  .section{padding:64px 0}
  .grid-3,.grid-2,.stats{grid-template-columns:1fr 1fr}
  .cta-band{padding:40px 22px}
}
@media (max-width:560px){
  .grid-3,.grid-2,.grid-4,.stats{grid-template-columns:1fr}
  .hero-cta .btn{width:100%}
  .foot-grid{grid-template-columns:1fr}
  .hero-visual{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .js-reveal .reveal{opacity:1;transform:none;transition:none}
}
