/* site.css — shared styles for Sash marketing pages (index + modules). */
  :root{
    --primary:#2B4CE0; --primary-deep:#2438A8; --primary-ink:#14183a;
    --accent:#F5A623; --accent-soft:#fdeccb;
    --bg:#f6f8fc; --card:#ffffff; --text:#1a2233; --muted:#5b6b85; --border:#e4e9f2;
    --ok:#059669;
    --m-hr:#1d4ed8; --m-fin:#0d9488; --m-proc:#b45309; --m-sales:var(--primary-deep); --m-proj:#db2777; --m-doc:#475569;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{position:relative;font-family:"Inter",system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:1180px;margin:0 auto;padding:0 24px}
  .btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;padding:12px 22px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:.15s}
  .btn-primary{background:var(--primary);color:#fff;box-shadow:0 8px 22px -8px rgba(29,78,216,.6)}
  .btn-primary:hover{background:var(--primary-deep);transform:translateY(-1px)}
  .btn-ghost{background:#fff;color:var(--primary-ink);border-color:var(--border)}
  .btn-ghost:hover{border-color:var(--primary)}
  .btn-accent{background:var(--accent);color:#3a2a05}
  .btn-accent:hover{filter:brightness(.96);transform:translateY(-1px)}
  .btn-lg{padding:15px 30px;font-size:16px}

  /* reveal-on-scroll */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  .reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
  /* scene arrival — whole sections ease in like a page turning in */
  .scene{opacity:0;transform:translateY(46px) scale(.99);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
  .scene.in{opacity:1;transform:none}
  .scene.band,.scene.hero{transform:translateY(46px) scale(.965)} .scene.band.in,.scene.hero.in{transform:none}
  @media (prefers-reduced-motion:reduce){.scene,.reveal{opacity:1!important;transform:none!important;transition:none!important}}

  /* NAV */
  header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
  .nav-in{display:flex;align-items:center;gap:28px;height:66px}
  .logo{display:flex;align-items:center;gap:0;font-weight:800;font-size:19px;color:var(--primary-ink)}
  .logo small{font-weight:700;color:var(--muted);font-size:12px;letter-spacing:2px;margin-left:8px}
  .logo .dot{color:var(--accent)}
  nav.links{display:flex;gap:24px;margin-left:6px}
  nav.links a{font-size:14.5px;color:var(--muted);font-weight:500}
  nav.links a:hover{color:var(--primary-ink)}
  nav.links a.on{color:var(--primary-ink);font-weight:700;border-bottom:2px solid var(--accent);padding-bottom:2px}
  .nav-cta{margin-left:auto;display:flex;align-items:center;gap:12px}
  .nav-cta a.signin{font-size:14.5px;font-weight:600;color:var(--primary-ink)}
  /* mobile nav — hamburger + slide-down menu (hidden on desktop) */
  .nav-burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;margin-left:6px}
  .nav-burger span{display:block;width:24px;height:2.5px;border-radius:2px;background:var(--primary-ink);transition:transform .25s,opacity .2s}
  .nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .mobile-menu{display:none;flex-direction:column;gap:2px;padding:10px 20px 18px;background:#fff;border-bottom:1px solid var(--line,#e7e9f0);box-shadow:0 14px 30px rgba(16,18,43,.08)}
  .mobile-menu a{padding:13px 4px;font-size:16px;font-weight:600;color:var(--primary-ink);border-bottom:1px solid #f0f2f7;text-decoration:none}
  .mobile-menu a:last-child{border-bottom:0}
  .mobile-menu.open{display:flex}
  @media(max-width:980px){nav.links{display:none}.nav-cta a.signin{display:none}.nav-burger{display:flex}}

  /* HERO */
  .hero{position:relative;padding:82px 0 44px;background:linear-gradient(120deg,#eef2ff,#e7ecff 45%,#eef2ff);overflow:hidden}
  .hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;z-index:0}
  .hero::before{width:360px;height:360px;background:#c3d0ff;top:-120px;right:8%}
  .hero::after{width:300px;height:300px;background:#d6e0ff;bottom:-120px;left:-60px}
  .hero .flowbg{position:absolute;inset:0;z-index:0;pointer-events:none;width:100%;height:100%}
  .hero .flowbg .lstream{fill:none;stroke-linecap:round;stroke-dasharray:2 13;animation:streamflow 3.8s linear infinite}
  .hero .flowbg .lstream.s2{animation-duration:4.8s}.hero .flowbg .lstream.s3{animation-duration:5.6s}
  @keyframes streamflow{to{stroke-dashoffset:-15}}
  @media (prefers-reduced-motion:reduce){.hero .flowbg .lstream{animation:none}}

  /* FLOATING BUBBLES — ambient liveliness (soft drifting orbs), pure CSS. */
  /* .ambient = page-wide fixed layer (shows through transparent sections); .bubbles = per-section field. */
  .ambient{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
  .bubbles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
  .bubbles b,.ambient b{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 32% 28%, rgba(255,255,255,.9), var(--c) 72%);
    box-shadow:inset 0 0 10px rgba(255,255,255,.35);
    opacity:var(--o,.5);animation:bubdrift var(--d,14s) ease-in-out var(--dl,0s) infinite;
    will-change:transform;transform:translateZ(0)}
  .ambient b{opacity:var(--o,.3)}
  /* faint business glyph floating inside each orb */
  .bubbles b svg,.ambient b svg{width:42%;height:42%;fill:none;stroke:rgba(52,80,214,.5);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.55}
  .hero.dark .bubbles b svg,.band .bubbles b svg,.cta .bubbles b svg{stroke:rgba(255,255,255,.62)}
  /* slightly bigger, livelier drift + gentle rotation */
  @keyframes bubdrift{0%,100%{transform:translate(0,0) scale(1) rotate(0deg)}50%{transform:translate(var(--mx,16px),-44px) scale(1.08) rotate(3deg)}}
  /* On dark bands, brighten the orbs so they read against navy. */
  .band .bubbles b,.cta .bubbles b{opacity:var(--o,.34);box-shadow:inset 0 0 10px rgba(255,255,255,.3)}
  @media (prefers-reduced-motion:reduce){.bubbles b,.ambient b{animation:none}}
  @media (max-width:640px){.bubbles b:nth-child(n+7),.ambient b:nth-child(n+8){display:none}}

  /* DARK NAVY HERO (brand navy + orange-dot accent + glowing orbs). */
  .hero.dark{background:radial-gradient(120% 105% at 60% -5%, #18224e 0%, #0e1430 60%)}
  .hero.dark::before{background:#2a3aa0;opacity:.28}
  .hero.dark::after{background:#f5a623;opacity:.14}
  .hero.dark .pill{background:rgba(255,255,255,.08);color:#ffd79a;border:1px solid rgba(255,255,255,.16);box-shadow:none}
  .hero.dark h1.big{color:#fff}
  .hero.dark h1.big span{color:#8ea2ff}
  .hero.dark .odot{color:var(--accent)}
  .hero.dark .sub{color:#aeb8d6}.hero.dark .sub b{color:#fff}
  .hero.dark .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.28)}
  .hero.dark .btn-ghost:hover{border-color:#8ea2ff}
  .hero.dark .trust{color:#aeb8d6}.hero.dark .trust b{color:#fff}
  /* orbs glow brighter on the dark hero */
  .hero.dark .bubbles b{box-shadow:inset 0 0 12px rgba(255,255,255,.3);opacity:var(--o,.45)}
  .hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
  @media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:34px}}
  .pill{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#8a5a00;font-weight:700;font-size:13px;padding:7px 14px;border-radius:999px;margin-bottom:20px;box-shadow:0 6px 16px -8px rgba(14,36,100,.3)}
  h1.big{font-size:56px;line-height:1.03;font-weight:900;letter-spacing:-1.6px;color:var(--primary-ink)}
  @media(max-width:900px){h1.big{font-size:40px}}
  h1.big span{color:var(--primary)}
  .sub{font-size:18px;color:var(--muted);margin:20px 0 28px;max-width:566px}
  .sub b{color:var(--text)}
  .hero-cta{display:flex;gap:14px;flex-wrap:wrap}
  .trust{margin-top:20px;font-size:13.5px;color:var(--muted);display:flex;gap:18px;flex-wrap:wrap}
  .trust b{color:var(--text)}
  .floaty{animation:floaty 6s ease-in-out infinite}
  @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

  /* BROWSER MOCKUP */
  .mock{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 30px 70px -24px rgba(14,36,100,.42);overflow:hidden}
  .mock .bar{display:flex;align-items:center;gap:6px;padding:11px 14px;background:#f1f4fa;border-bottom:1px solid var(--border)}
  .mock .bar i{width:11px;height:11px;border-radius:50%;background:#d4dbe8;display:inline-block}
  .mock .bar .url{margin-left:12px;font-size:11.5px;color:var(--muted);background:#fff;border:1px solid var(--border);border-radius:6px;padding:4px 12px}
  .mods-ribbon{display:flex;flex-wrap:wrap;gap:5px;padding:9px 12px;background:#0e2464}
  .mods-ribbon span{font-size:9.5px;font-weight:700;color:rgba(255,255,255,.7);padding:4px 9px;border-radius:6px;background:rgba(255,255,255,.08)}
  .mods-ribbon span.on{background:var(--accent);color:#3a2a05}
  .mock .body{display:flex;min-height:270px}
  .mside{width:118px;background:var(--side,#101f4d);padding:14px 0;flex-shrink:0}
  .mside .b{color:#fff;font-weight:800;font-size:14px;padding:2px 14px 12px}
  .mside .b em{color:var(--accent);font-style:normal}
  .mside a{display:block;color:rgba(255,255,255,.72);font-size:11px;padding:7px 14px}
  .mside a.on{background:rgba(255,255,255,.12);color:#fff;border-left:3px solid var(--accent)}
  .mmain{flex:1;padding:16px;background:#f8fafd}
  .mrow{display:flex;gap:10px;margin-bottom:12px}
  .kpi{flex:1;background:#fff;border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:9px;padding:10px 12px}
  .kpi .n{font-size:17px;font-weight:800;color:var(--primary)}
  .kpi.acc{border-top-color:var(--accent)} .kpi.acc .n{color:#b8760a}
  .kpi.grn{border-top-color:var(--ok)} .kpi.grn .n{color:var(--ok)}
  .kpi .l{font-size:9.5px;color:var(--muted);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}
  .mtable{background:#fff;border:1px solid var(--border);border-radius:9px;overflow:hidden;font-size:10.5px}
  .mtable .h{display:flex;background:#eef2fb;color:var(--primary-ink);font-weight:700;padding:7px 10px}
  .mtable .tr{display:flex;padding:7px 10px;border-top:1px solid var(--border);color:#33405c}
  .mtable .c{flex:1}
  .badge{background:#d1fae5;color:#065f46;border-radius:5px;padding:1px 7px;font-weight:600;font-size:9px}
  .badge.amber{background:#fef3c7;color:#92600a}
  .badge.red{background:#fee2e2;color:#b91c1c}

  /* module-specific mini visuals */
  .pipe{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:12px}
  .pipe .s{background:#fff;border:1px solid var(--border);border-radius:8px;padding:7px 9px;font-size:10px;font-weight:700;color:var(--primary-ink)}
  .pipe .s.on{background:var(--m-proc);color:#fff;border-color:var(--m-proc)}
  .pipe .a{color:#b0b8c9;font-weight:800;font-size:11px}
  .kanban{display:flex;gap:8px}
  .kcol{flex:1;background:#fff;border:1px solid var(--border);border-radius:9px;padding:8px}
  .kcol h6{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:7px;font-weight:800}
  .kcard{background:#f5f3ff;border:1px solid #e4dcfb;border-left:3px solid var(--m-sales);border-radius:6px;padding:6px 8px;margin-bottom:6px;font-size:9.5px;color:#5b6b85}
  .kcard b{display:block;color:var(--primary-ink);font-size:10px}
  .gantt{display:flex;flex-direction:column;gap:9px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:12px}
  .grow{display:flex;align-items:center;gap:8px;font-size:10px;color:#33405c}
  .gname{width:70px;flex-shrink:0;font-weight:600}
  .gtrack{flex:1;background:#eef2fb;border-radius:6px;height:13px;position:relative}
  .gbar{position:absolute;height:13px;border-radius:6px;background:linear-gradient(90deg,var(--m-proj),#f472b6)}

  /* CONSTELLATION FLOW (brand component language) */
  .flow{stroke-dasharray:3 9;stroke-linecap:round;animation:flowin 1.6s linear infinite}
  .flow.s2{animation-duration:2.1s}.flow.s3{animation-duration:2.6s}
  @keyframes flowin{to{stroke-dashoffset:-12}}
  .coreglow{animation:corepulse 3.6s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
  @keyframes corepulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
  .haloring{animation:halo 3.6s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
  @keyframes halo{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.7;transform:scale(1.12)}}
  .outflow{stroke-dasharray:4 8;stroke-linecap:round;animation:flowout 1.4s linear infinite}
  @keyframes flowout{to{stroke-dashoffset:-12}}
  .orbit{transform-box:fill-box;transform-origin:center;animation:orbitspin 46s linear infinite}
  @keyframes orbitspin{to{transform:rotate(360deg)}}
  @media (prefers-reduced-motion:reduce){.flow,.coreglow,.haloring,.outflow,.orbit{animation:none!important}}

  /* MODULE HIGHLIGHTS (homepage) */
  .mod-hi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  @media(max-width:860px){.mod-hi-grid{grid-template-columns:1fr 1fr}}
  @media(max-width:560px){.mod-hi-grid{grid-template-columns:1fr}}
  .mod-hi{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px;transition:.15s;display:flex;flex-direction:column;border-top:3px solid var(--mc,var(--primary))}
  .mod-hi:hover{transform:translateY(-3px);box-shadow:0 14px 32px -16px rgba(20,24,58,.3);border-color:var(--mc,var(--primary))}
  .mod-hi .ic{width:42px;height:42px;border-radius:12px;background:var(--mcs,#eef1ff);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
  .mod-hi .ic svg{width:23px;height:23px;fill:none;stroke:var(--mc,var(--primary));stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .mod-hi .ic svg .o{stroke:var(--accent)} .mod-hi .ic svg .of{fill:var(--accent);stroke:none}
  .mod-hi h3{font-size:16px;color:var(--primary-ink);margin-bottom:5px}
  .mod-hi p{font-size:13.4px;color:var(--muted);flex:1}
  .mod-hi .go{margin-top:12px;font-size:13px;font-weight:700;color:var(--mc,var(--primary))}

  /* SECTIONS */
  section{padding:66px 0}
  .eyebrow{color:var(--primary);font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;text-align:center}
  h2.sec{font-size:36px;font-weight:800;letter-spacing:-.9px;color:var(--primary-ink);text-align:center;margin:10px auto 12px;max-width:780px}
  .lede{text-align:center;color:var(--muted);font-size:17px;max-width:650px;margin:0 auto 44px}

  /* STATS */
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  @media(max-width:760px){.stats{grid-template-columns:1fr 1fr}}
  .stat2{text-align:center;padding:22px 16px;background:#fff;border:1px solid var(--border);border-radius:14px;transition:.15s}
  .stat2:hover{transform:translateY(-3px);box-shadow:0 14px 30px -16px rgba(14,36,100,.3)}
  .stat2 .n{font-size:30px;font-weight:900;letter-spacing:-1px;background:linear-gradient(90deg,var(--primary),var(--primary-deep));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .stat2 .l{font-size:13px;color:var(--muted);margin-top:5px;font-weight:600}

  /* MODULE CHIPS */
  .mchips{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:4px}
  .mchip{display:flex;align-items:center;gap:10px;padding:11px 17px;border-radius:12px;background:#fff;border:1px solid var(--border);border-bottom:3px solid var(--mc);font-weight:700;font-size:14px;color:var(--primary-ink);transition:.15s;cursor:pointer}
  .mchip:hover{transform:translateY(-3px);box-shadow:0 14px 28px -16px rgba(14,36,100,.34)}
  .mchip .d{width:30px;height:30px;border-radius:9px;background:var(--mcs);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .mchip .d svg{width:18px;height:18px;fill:none;stroke:var(--mc);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mchip .d svg .o{stroke:var(--accent)} .mchip .d svg .of{fill:var(--accent);stroke:none}

  /* SNAPS */
  /* each module = its own tinted panel → a gentle colour "phase change" as you scroll module to module */
  .snap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-bottom:26px;
    background:linear-gradient(180deg, color-mix(in srgb, var(--mc) 7%, #fff), #fff);
    border:1px solid var(--border);border-top:3px solid var(--mc);border-radius:18px;padding:28px 30px}
  .snap:last-child{margin-bottom:0}
  /* MODULE PREV / NEXT nav (module pages) */
  .modnav-wrap{padding:8px 0 10px}
  .modnav{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
  .modnav a{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:var(--primary-ink);background:var(--card);border:1px solid var(--border);border-radius:10px;padding:11px 16px;transition:.15s}
  .modnav a:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 8px 20px -12px rgba(20,24,58,.4)}
  .modnav a.all{color:var(--muted);font-weight:600;background:transparent;border-style:dashed}
  /* SIGNATURE CAPABILITIES strip */
  .cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  @media(max-width:820px){.cap-grid{grid-template-columns:1fr 1fr}}
  @media(max-width:520px){.cap-grid{grid-template-columns:1fr}}
  .cap{display:flex;gap:13px;align-items:flex-start;background:var(--card);border:1px solid var(--border);border-radius:13px;padding:16px;transition:.15s}
  .cap:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 12px 30px -14px rgba(20,24,58,.28)}
  .cap .ic{width:40px;height:40px;border-radius:11px;background:linear-gradient(180deg,#eef1ff,#e6ebff);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .cap .ic svg{width:22px;height:22px;fill:none;stroke:var(--primary);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .cap .ic svg .o{stroke:var(--accent)}.cap .ic svg .of{fill:var(--accent);stroke:none}
  .cap h4{font-size:15px;color:var(--primary-ink);margin-bottom:3px}
  .cap p{font-size:13px;color:var(--muted)}
  .snap.rev .txt{order:2}
  @media(max-width:820px){.snap,.snap.rev{grid-template-columns:1fr;gap:26px}.snap.rev .txt{order:0}}
  .snap .kicker{font-size:12px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--mc,var(--primary))}
  .snap h3{font-size:26px;color:var(--primary-ink);margin:6px 0 8px;letter-spacing:-.5px;line-height:1.12}
  .snap p{color:var(--muted);font-size:15px;margin-bottom:14px}
  .usp{display:inline-flex;align-items:center;gap:7px;background:var(--mcs,#e6edff);color:var(--mc,var(--primary));font-weight:800;font-size:12.5px;padding:6px 13px;border-radius:999px;margin-bottom:14px}
  .snap ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
  @media(max-width:520px){.snap ul{grid-template-columns:1fr}}
  .snap li{font-size:14px;padding-left:24px;position:relative;color:#33405c}
  .snap li::before{content:"✓";position:absolute;left:0;color:var(--mc,var(--ok));font-weight:800}
  .snap-visual{position:relative}

  .feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  @media(max-width:860px){.feat-grid{grid-template-columns:1fr 1fr}}
  @media(max-width:520px){.feat-grid{grid-template-columns:1fr}}
  .feat{background:var(--card);border:1px solid var(--border);border-radius:13px;padding:20px;transition:.15s}
  .feat:hover{border-color:var(--primary);box-shadow:0 12px 30px -14px rgba(14,36,100,.28);transform:translateY(-3px)}
  .feat .ic{width:42px;height:42px;border-radius:12px;background:linear-gradient(180deg,#eef1ff,#e6ebff);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
  .feat .ic svg{width:23px;height:23px;fill:none;stroke:var(--primary);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .feat .ic svg .o{stroke:var(--accent)} .feat .ic svg .of{fill:var(--accent);stroke:none}
  /* Generic icon-svg styling so every .ic renders a blue line-icon with an orange accent. */
  .ic svg .o{stroke:var(--accent)} .ic svg .of{fill:var(--accent);stroke:none}
  .feat h3{font-size:15.5px;color:var(--primary-ink);margin-bottom:5px}
  .feat p{font-size:13.4px;color:var(--muted)}

  .band{background:linear-gradient(135deg,var(--primary-ink),#242a5e);color:#fff;position:relative;overflow:hidden}
  .band .eyebrow{color:#b9c8ff}.band h2.sec{color:#fff}.band .lede{color:#c7d5f5}
  .uae-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  @media(max-width:860px){.uae-grid{grid-template-columns:1fr 1fr}}
  .uae{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:20px;transition:.15s}
  .uae:hover{background:rgba(255,255,255,.12);transform:translateY(-3px)}
  .uae .n{font-size:24px;font-weight:900;color:var(--accent)}
  .uae h4{font-size:15px;margin:8px 0 4px}
  .uae p{font-size:13px;color:#c3d1f2}

  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  @media(max-width:760px){.steps{grid-template-columns:1fr}}
  .step{text-align:center;padding:10px}
  .step .num{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-deep));color:#fff;font-weight:800;font-size:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 10px 22px -10px rgba(29,78,216,.6)}
  .step h4{color:var(--primary-ink);font-size:17px;margin-bottom:6px}
  .step p{color:var(--muted);font-size:14px}

  .price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
  @media(max-width:820px){.price-grid{grid-template-columns:1fr}}
  .price{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:28px;display:flex;flex-direction:column;transition:.15s}
  .price:hover{transform:translateY(-3px);box-shadow:0 16px 34px -18px rgba(14,36,100,.3)}
  .price.pop{border:2px solid var(--primary);box-shadow:0 18px 44px -20px rgba(29,78,216,.45);position:relative}
  .price.pop .tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--accent);color:#3a2a05;font-weight:700;font-size:12px;padding:5px 14px;border-radius:999px}
  .price h3{font-size:20px;color:var(--primary-ink)}
  .price .p{font-size:15px;color:var(--muted);margin:6px 0 16px}
  .price ul{list-style:none;display:flex;flex-direction:column;gap:9px;margin-bottom:22px;flex:1}
  .price li{font-size:14px;padding-left:24px;position:relative;color:#33405c}
  .price li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:800}
  .price .btn{justify-content:center;width:100%}

  .about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
  @media(max-width:820px){.about-grid{grid-template-columns:1fr}}
  .about p{color:var(--muted);font-size:15.5px;margin-bottom:14px}
  .about h2{font-size:32px;color:var(--primary-ink);letter-spacing:-.6px;margin-bottom:14px}
  .about-card{background:linear-gradient(135deg,var(--primary-ink),#242a5e);color:#fff;border-radius:16px;padding:30px}
  .about-card .stat{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:14px}
  .about-card .stat:last-child{border:0}
  .about-card b{color:var(--accent)}

  /* CONTACT */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
  @media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
  .cinfo .row{display:flex;gap:12px;margin-bottom:12px;align-items:center}
  .cinfo .ic{width:42px;height:42px;border-radius:11px;background:linear-gradient(180deg,#eef1ff,#e6ebff);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .cinfo .ic svg{width:21px;height:21px;fill:none;stroke:var(--primary);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .cinfo h4{font-size:15px;color:var(--primary-ink)}
  .cinfo a,.cinfo p{color:var(--muted);font-size:14.5px}
  form.cform{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:22px}
  form.cform label{display:block;font-size:13px;font-weight:600;color:var(--primary-ink);margin:9px 0 4px}
  form.cform input,form.cform textarea,form.cform select{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:9px;font-family:inherit;font-size:14px;background:#fff}
  form.cform input:focus,form.cform textarea:focus,form.cform select:focus{outline:none;border-color:var(--primary)}
  form.cform .btn{margin-top:18px;width:100%;justify-content:center}
  #cmsg{margin-top:12px;font-size:14px}

  /* CTA + FOOTER */
  .cta{background:linear-gradient(135deg,var(--primary),var(--primary-deep));border-radius:22px;padding:54px 40px;text-align:center;color:#fff;margin:0 24px;box-shadow:0 30px 70px -30px rgba(29,78,216,.7)}
  .cta h2{font-size:33px;font-weight:800;letter-spacing:-.6px}
  .cta p{color:#e6ecff;font-size:17px;margin:12px auto 24px;max-width:560px}
  footer{background:#0b1533;color:#9fb0d6;padding:44px 0 28px;margin-top:64px}
  .foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:26px}
  footer .logo{color:#fff}footer .logo small{color:#7f92bd}
  footer .col h5{color:#fff;font-size:13px;margin-bottom:10px;text-transform:uppercase;letter-spacing:1px}
  footer .col a{display:block;color:#9fb0d6;font-size:14px;padding:3px 0}
  footer .col a:hover{color:#fff}
  .foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:18px;font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

  /* highlight pills under snaps */
  .hl{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
  .hl span{font-size:11.5px;font-weight:700;color:var(--mc,var(--primary));background:var(--mcs,#e6edff);border-radius:999px;padding:5px 11px}

  /* AI band */
  .aiband{background:radial-gradient(900px 420px at 12% -10%,#4a35a3 0%,transparent 55%),linear-gradient(135deg,#0e2464,#141d43);color:#fff}
  .aiband .eyebrow{color:#cbbcff}.aiband h2.sec{color:#fff}.aiband .lede{color:#cdd7f5}
  .ai-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:38px;align-items:center}
  @media(max-width:860px){.ai-grid{grid-template-columns:1fr}}
  .ai-cards{display:grid;gap:14px}
  .ai-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:18px 20px;transition:.15s}
  .ai-card:hover{background:rgba(255,255,255,.11);transform:translateY(-2px)}
  .ai-card h3{font-size:16.5px;margin-bottom:4px;color:#fff}
  .ai-card p{font-size:13.4px;color:#c7d2f0}
  .ai-card .ic{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;margin-bottom:10px}
  .ai-card .ic svg{width:21px;height:21px;fill:none;stroke:#cdd8ff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .ai-card .ic svg .o{stroke:var(--accent)} .ai-card .ic svg .of{fill:var(--accent);stroke:none}
  .chat{background:#fff;border-radius:18px;padding:16px;box-shadow:0 30px 70px -24px rgba(0,0,0,.55)}
  .chat .head{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:13px;color:var(--primary-ink);font-weight:800;font-size:14px}
  .chat .head .spark{width:27px;height:27px;border-radius:8px;background:linear-gradient(135deg,var(--primary),var(--primary-deep));display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px}
  .bub{max-width:88%;padding:10px 13px;border-radius:14px;font-size:13px;margin-bottom:10px;line-height:1.45}
  .bub.u{background:#eef2fb;color:#33405c;margin-left:auto;border-bottom-right-radius:4px}
  .bub.a{background:linear-gradient(135deg,#1d4ed8,var(--primary-deep));color:#fff;border-bottom-left-radius:4px}

  /* mobile + wallet */
  .pocket-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
  @media(max-width:860px){.pocket-grid{grid-template-columns:1fr}}
  .phones{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
  .phone{width:214px;background:#0e2464;border-radius:34px;padding:11px;box-shadow:0 34px 64px -24px rgba(14,36,100,.6)}
  .phone .notch{width:78px;height:6px;background:rgba(255,255,255,.35);border-radius:99px;margin:3px auto 8px}
  .phone .screen{background:#f4f7fc;border-radius:26px;overflow:hidden;min-height:398px;padding:14px}
  .wtitle{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin:2px 0 11px;text-align:center}
  /* wallet passes — styled like real Apple/Google Wallet cards */
  .wcard{border-radius:18px;padding:14px 15px 15px;color:#fff;margin-bottom:13px;box-shadow:0 16px 32px -12px rgba(14,36,100,.55)}
  .wcard.id{background:linear-gradient(135deg,#1d4ed8,var(--primary-deep))}
  .wcard.vis{background:linear-gradient(160deg,#0f766e,#0e2464)}
  .wc-head{display:flex;align-items:center;gap:8px;margin-bottom:13px}
  .wc-logo{width:21px;height:21px;border-radius:6px;background:rgba(255,255,255,.95);color:#1d4ed8;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center}
  .wcard.vis .wc-logo{color:#0f766e}
  .wc-type{font-size:9.5px;font-weight:800;letter-spacing:1.2px;opacity:.95}
  .wc-primary{display:flex;align-items:center;gap:11px;margin-bottom:13px}
  .wc-lbl{font-size:7.5px;font-weight:800;letter-spacing:1px;opacity:.72;text-transform:uppercase;margin-bottom:2px}
  .nm{font-size:16px;font-weight:800;line-height:1.1}
  .wc-fields{display:flex;gap:16px;margin-bottom:12px;flex-wrap:wrap}
  .wc-val{font-size:11px;font-weight:600}
  .wc-qr{display:flex;justify-content:center;padding-top:12px;border-top:1px solid rgba(255,255,255,.28)}
  .avatar{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}
  .qr{width:66px;height:66px;border-radius:9px;background:#fff;padding:5px;flex-shrink:0}
  .applt{display:flex;gap:8px;justify-content:center;margin-top:8px}
  .applt span{display:inline-flex;align-items:center;gap:6px;background:#0e2464;color:#fff;font-size:10.5px;font-weight:700;padding:7px 11px;border-radius:9px}

  /* love / secure strip */
  .love-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  @media(max-width:760px){.love-grid{grid-template-columns:1fr}}
  .love{display:flex;gap:13px;align-items:flex-start;background:#fff;border:1px solid var(--border);border-radius:13px;padding:18px;transition:.15s}
  .love:hover{transform:translateY(-3px);box-shadow:0 14px 30px -16px rgba(14,36,100,.28)}
  .love .ic{width:40px;height:40px;border-radius:11px;background:linear-gradient(180deg,#eef1ff,#e6ebff);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .love .ic svg{width:22px;height:22px;fill:none;stroke:var(--primary);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .love .ic svg .o{stroke:var(--accent)} .love .ic svg .of{fill:var(--accent);stroke:none}
  .love h4{font-size:15px;color:var(--primary-ink);margin-bottom:3px}
  .love p{font-size:13.3px;color:var(--muted)}

  /* built-by personas */
  .persona{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:8px 0 4px}
  .persona span{background:#fff;border:1px solid var(--border);border-radius:999px;padding:9px 16px;font-weight:700;font-size:13.5px;color:var(--primary-ink);box-shadow:0 6px 16px -12px rgba(14,36,100,.4)}
  .persona span b{color:var(--primary)}

  /* brand-theming showcase */
  .brandbar{border-radius:13px;overflow:hidden;border:1px solid var(--border);box-shadow:0 16px 34px -18px rgba(14,36,100,.35);margin-bottom:16px}
  .brandbar .bb-top{display:flex;align-items:center;gap:11px;padding:12px 15px;color:#fff}
  .brandbar .bb-logo{width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px}
  .brandbar .bb-name{font-weight:800;font-size:15px;letter-spacing:.2px}
  .brandbar .bb-name span{opacity:.75;font-weight:600;font-size:11px;margin-left:7px}
  .brandbar .bb-tabs{margin-left:auto;display:flex;gap:12px;font-size:11px;opacity:.9;font-weight:600}
  @media(max-width:420px){.brandbar .bb-tabs{display:none}}
  .brandbar .bb-body{background:#fff;padding:13px 15px;display:flex;gap:9px;align-items:center}
  .brandbar .bb-chip{height:34px;border-radius:8px;flex:1}
  .brandbar .bb-btn{height:34px;border-radius:8px;padding:0 16px;display:flex;align-items:center;color:#fff;font-size:12px;font-weight:700}

  /* ===== Capabilities hero band — vibrant icon tiles + motion (scoped) ===== */
  #capabilities .cap{padding:18px;box-shadow:0 12px 30px -18px rgba(0,0,0,.55)}
  #capabilities .cap .ic{width:50px;height:50px;border-radius:14px;box-shadow:0 10px 22px -8px rgba(0,0,0,.45);animation:capFloat 4.2s ease-in-out infinite;will-change:transform}
  #capabilities .cap .ic svg{width:26px;height:26px;stroke:#fff}
  #capabilities .cap .ic svg .o{stroke:#ffe1a8}
  #capabilities .cap .ic svg .of{fill:#ffe1a8;stroke:none}
  #capabilities .cap:nth-child(1) .ic{background:linear-gradient(135deg,#3450d6,#6d8bff)}
  #capabilities .cap:nth-child(2) .ic{background:linear-gradient(135deg,#0f9d8f,#22c3a6);animation-delay:.35s}
  #capabilities .cap:nth-child(3) .ic{background:linear-gradient(135deg,#f59e0b,#f97316);animation-delay:.7s}
  #capabilities .cap:nth-child(4) .ic{background:linear-gradient(135deg,#6d28d9,#9b6bff);animation-delay:1.05s}
  #capabilities .cap:nth-child(5) .ic{background:linear-gradient(135deg,#0891b2,#22d3ee);animation-delay:1.4s}
  #capabilities .cap:nth-child(6) .ic{background:linear-gradient(135deg,#db2777,#f472b6);animation-delay:1.75s}
  #capabilities .cap:hover{transform:translateY(-4px);border-color:transparent;box-shadow:0 20px 44px -18px rgba(0,0,0,.6)}
  #capabilities .cap:hover .ic{filter:brightness(1.12) saturate(1.18)}
  #capabilities .cap h4{color:var(--primary-ink)}
  @keyframes capFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
  @media (prefers-reduced-motion:reduce){#capabilities .cap .ic{animation:none}}

  .logo{display:inline-flex;align-items:center}
  .logo-img{height:36px;width:auto;display:block}

  .mod-h{margin:6px 0 0}
  .mod-wm{height:32px;width:auto;display:block;margin:-8px 0 -9px -3px}
  .mod-sub{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.2px;margin:0 0 9px}

  .mchip{position:relative;overflow:hidden}
  .mchip::after{content:"";position:absolute;right:-10px;top:-14px;width:58px;height:58px;background:var(--mc);opacity:.09;pointer-events:none;-webkit-mask:url(/brand/s-mono.svg) no-repeat center/contain;mask:url(/brand/s-mono.svg) no-repeat center/contain}

  .mfeat{padding:30px 0 48px;background:#f4f6fb;border-top:1px solid var(--border)}
  .mfeat h2{font-size:26px;font-weight:800;color:var(--primary-ink);text-align:center;margin:0 0 8px}
  .mfeat .flede{text-align:center;color:var(--muted);max-width:660px;margin:0 auto 26px;font-size:15px;line-height:1.5}
  .fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1040px;margin:0 auto}
  .fcard{background:#fff;border:1px solid var(--border);border-radius:12px;padding:15px 16px;border-top:3px solid var(--mc,#2B4CE0);transition:.15s}
  .fcard:hover{transform:translateY(-3px);box-shadow:0 16px 30px -20px rgba(14,36,100,.34)}
  .fcard h4{margin:0 0 4px;font-size:14px;color:var(--primary-ink);font-weight:700}
  .fcard p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.46}
  @media(max-width:860px){.fgrid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.fgrid{grid-template-columns:1fr}}

  .hero-brand{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
  .hero-brand .hero-wm{height:30px;width:auto;display:block}
  .hero-brand .hero-desc{color:#c7d5f5;font-size:14px;font-weight:600;letter-spacing:.2px}

  .demo-frame{max-width:820px;margin:0 auto;aspect-ratio:16/9;border-radius:16px;background:linear-gradient(155deg,#16182B,#2438A8);display:flex;align-items:center;justify-content:center;color:#c7d5f5;font-weight:600;border:1px solid rgba(255,255,255,.14)}
  .demo-frame .play{width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;margin:0 auto 12px}
  .cmp{max-width:900px;margin:24px auto 0;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff}
  .cmp table{width:100%;border-collapse:collapse}
  .cmp th,.cmp td{padding:13px 16px;text-align:left;border-top:1px solid var(--border);font-size:14.5px;vertical-align:middle}
  .cmp thead th{background:#f4f6fb;font-weight:800;color:var(--primary-ink);border-top:0}
  .cmp th.sash,.cmp td.sash{background:#eef3ff}
  .cmp td.no{color:#9aa3b2} .cmp td.yes{color:#0f9d58;font-weight:800;text-align:center;font-size:17px}
  .cmp th.sash{color:var(--primary);text-align:center}
  .faq{max-width:820px;margin:22px auto 0}
  .faq details{background:#fff;border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:2px 18px}
  .faq summary{cursor:pointer;font-weight:700;color:var(--primary-ink);padding:14px 0;list-style:none;font-size:15.5px;display:flex;justify-content:space-between;align-items:center}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"+";color:var(--primary);font-weight:800;margin-left:12px}
  .faq details[open] summary::after{content:"\2013"}
  .faq details p{margin:0 0 16px;color:var(--muted);font-size:14px;line-height:1.55}
  /* FAQ opened as a dialog (from the footer "FAQ" link) — keeps it off the main page */
  .faqmodal{position:fixed;inset:0;z-index:120;background:rgba(14,20,48,.6);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;padding:20px}
  .faqmodal.open{display:flex}
  .faqmodal-box{background:#fff;border-radius:16px;max-width:760px;width:100%;max-height:86vh;overflow:auto;padding:30px 30px 20px;position:relative;box-shadow:0 30px 80px rgba(14,20,48,.42)}
  .faqmodal-box .faq{margin-top:14px}
  .faqmodal-x{position:absolute;top:14px;right:16px;border:none;background:none;font-size:22px;color:var(--muted);cursor:pointer;line-height:1}
  .faqmodal-x:hover{color:var(--primary-ink)}
  /* Contact opened as a dialog (from the "Contact" nav / CTA links) — keeps it off the page */
  .cmodal{position:fixed;inset:0;z-index:120;background:rgba(14,20,48,.6);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;padding:20px}
  .cmodal.open{display:flex}
  .cmodal-box{background:#eef2fb;border-radius:16px;max-width:900px;width:100%;max-height:90vh;overflow:auto;padding:30px;position:relative;box-shadow:0 30px 80px rgba(14,20,48,.42)}
  .cmodal-box .contact-grid{margin-top:6px}

/* Reveal safety net — content is never left invisible if JS is slow/blocked or a fast scroll outruns the observer.
   JS still reveals on scroll via .in (immediate); if that never fires, this animation reveals after ~1.1s. */
.reveal{animation:sashRevealSafety .6s ease 1.1s both}
.reveal.in{animation:none}
.scene{animation:sashRevealSafety .6s ease 1.1s both}
.scene.in{animation:none}
@keyframes sashRevealSafety{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.reveal,.scene{animation:none!important}}

/* mobile app band chips */
.appchip{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.22);padding:9px 15px;border-radius:999px;font-weight:700;font-size:13.5px;color:#fff}

/* Modules hover dropdown (desktop nav) */
.nav-drop{position:relative;display:inline-flex;align-items:center}
.nav-drop>a{cursor:pointer}
.nav-drop>a .car{font-size:10px;margin-left:3px;vertical-align:middle;opacity:.7}
.nav-drop::after{content:"";position:absolute;top:100%;left:-10px;right:-10px;height:16px}
.nav-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(8px);width:360px;background:#fff;border:1px solid #e7e9f0;border-radius:16px;box-shadow:0 24px 50px rgba(16,18,43,.18);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:2px;opacity:0;visibility:hidden;transition:opacity .16s ease,transform .16s ease;z-index:120}
.nav-drop:hover .nav-menu,.nav-drop:focus-within .nav-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav-menu a{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border-radius:11px;text-decoration:none}
.nav-menu a .mi{width:20px;height:20px;flex:0 0 auto;margin-top:1px;stroke:#2B4CE0;fill:none;stroke-width:1.9}
.nav-menu a b{display:block;font-size:13.5px;color:#16182B;font-weight:700;line-height:1.15}
.nav-menu a small{display:block;font-size:11px;color:#6E7482;margin-top:1px}
.nav-menu a:hover{background:#f2f5fc}
.nav-menu a.all{grid-column:1 / -1;justify-content:center;color:#2B4CE0;font-weight:800;border-top:1px solid #eef1f6;margin-top:5px;padding-top:11px}

/* ============================================================
   RESPONSIVE POLISH — fluid type + tighter laptop spacing
   (fluid scale like Stripe/Linear; long sections still scroll)
   ============================================================ */
h1.big{font-size:clamp(32px,3.5vw,56px);letter-spacing:-1px}
.sub{font-size:clamp(15px,1.2vw,18px);margin:16px 0 24px}
h2.sec{font-size:clamp(25px,2.5vw,36px)}
.lede{font-size:clamp(15px,1.15vw,17px);margin-bottom:clamp(24px,2.6vw,40px)}
.snap h3{font-size:clamp(20px,1.7vw,26px)}
@media (max-width:1500px){
  .hero{padding:clamp(46px,4.4vw,72px) 0 34px}
  .mock .body{min-height:220px}
  .phone .screen{min-height:340px}
  .pocket-grid{gap:26px}
  .snap{gap:32px}
}
@media (max-width:1200px){
  .hero{padding:42px 0 28px}
  .phone .screen{min-height:300px}
}
