:root {
    color-scheme: light;
    --paper:#f7f4ec; --paper-2:#fffdf7; --paper-3:#efe8d8;
    --ink:#16181d; --ink-2:#56534b; --ink-3:#918d80;
    --navy:#121924; --navy-2:#1b2634;
    --line:rgba(22,24,29,0.13); --line-2:rgba(22,24,29,0.24); --line-n:rgba(255,255,255,0.15);
    --gold:#a97534; --gold-2:#c89a53; --gold-3:#6d4a1e; --gold-wash:#f1e7d4;
    --serif:"Fraunces","Iowan Old Style",Georgia,serif;
    --sans:"Inter Tight",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    --fs-hero:clamp(2.6rem,1.4rem + 4.9vw,5.4rem);
    --fs-h2:clamp(2rem,1.35rem + 2.7vw,3.5rem);
    --fs-h3:clamp(1.2rem,1.05rem + 0.7vw,1.55rem);
    --fs-lead:clamp(1.06rem,1rem + 0.4vw,1.28rem);
    --eo:cubic-bezier(0.16,1,0.3,1);
    --wrap:1280px; --pad:clamp(84px,12vh,168px); --radius:16px;
    --shadow:0 44px 100px -50px rgba(22,24,29,0.4),0 4px 16px -6px rgba(22,24,29,0.14);
  }
  *,*::before,*::after { box-sizing:border-box; }
  html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
  section[id],header[id],.anchor { scroll-margin-top:92px; }
  @media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
  body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans);
    font-size:1.0625rem; line-height:1.62; letter-spacing:-0.011em; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
  body.no-scroll { overflow:hidden; }
  h1,h2,h3,h4,p,figure,blockquote,ul,fieldset { margin:0; }
  ul { padding:0; list-style:none; }
  a { color:inherit; text-decoration:none; }
  button { font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
  img,svg { display:block; max-width:100%; }
  input,select,textarea { font:inherit; color:inherit; }
  ::selection { background:var(--gold); color:#fff; }
  :focus-visible { outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }
  h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:1.05; letter-spacing:-0.02em; font-optical-sizing:auto; text-wrap:balance; }
  .it { font-style:italic; font-weight:500; color:var(--gold); }

  .wrap { width:min(var(--wrap),100% - clamp(36px,8vw,150px)); margin-inline:auto; position:relative; z-index:1; }
  section { padding-block:var(--pad); position:relative; }
  .modules, .sol, .global, .final, footer { overflow:hidden; }

  /* decorative vector layers ------------------------------------------- */
  .deco { position:absolute; inset:0; z-index:0; pointer-events:none; background-repeat:no-repeat; background-position:center; background-size:cover; }
  .deco--contour { background-image:url("../img/motif-contour.svg"); opacity:0.07;
    -webkit-mask-image:radial-gradient(135% 95% at 50% 6%,#000 18%,transparent 82%);
            mask-image:radial-gradient(135% 95% at 50% 6%,#000 18%,transparent 82%); }
  .deco--arcs { background-image:url("../img/motif-arcs-dark.svg"); opacity:0.09;
    -webkit-mask-image:linear-gradient(100deg,transparent,#000 40%,#000 70%,transparent);
            mask-image:linear-gradient(100deg,transparent,#000 40%,#000 70%,transparent); }
  .deco--dots { background-image:url("../img/motif-dots.svg"); background-size:24px 24px; opacity:0.05; }
  .deco--grid { background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
    background-size:38px 38px; opacity:0.5;
    -webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000,transparent 78%);
            mask-image:radial-gradient(120% 90% at 50% 0%,#000,transparent 78%); }
  .on-navy .deco--arcs { background-image:url("../img/motif-arcs.svg"); opacity:0.24; }
  .on-navy .deco--dots { background-image:url("../img/motif-dots-navy.svg"); opacity:0.08; }
  .glow { position:absolute; z-index:0; width:60vw; max-width:760px; aspect-ratio:1; border-radius:50%;
    background:radial-gradient(circle,var(--gold-wash),transparent 68%); opacity:0.55; pointer-events:none; filter:blur(10px); }

  .kick { font-family:var(--sans); font-weight:600; font-size:0.72rem; letter-spacing:0.2em;
    text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:11px; }
  .kick::before { content:""; width:26px; height:2px; background:var(--gold); border-radius:2px; }
  .on-navy .kick { color:var(--gold-2); } .on-navy .kick::before { background:var(--gold-2); }
  .sec-head { max-width:46ch; display:flex; flex-direction:column; gap:20px; margin-bottom:clamp(46px,7vh,84px); }
  .sec-head h2 { font-size:var(--fs-h2); }
  .sec-head p { color:var(--ink-2); font-size:var(--fs-lead); max-width:42ch; }
  .on-navy .sec-head p { color:rgba(247,244,236,0.7); }
  .on-navy h1,.on-navy h2,.on-navy h3 { color:#fff; }

  .btn { display:inline-flex; align-items:center; gap:10px; padding:14px 24px; border-radius:100px;
    background:var(--gold); color:#fff; font-weight:500; font-size:0.92rem;
    box-shadow:0 16px 36px -16px rgba(169,117,52,0.7); transition:transform .5s var(--eo),background .3s,box-shadow .4s; will-change:transform; }
  .btn:hover { background:#93631f; box-shadow:0 22px 46px -18px rgba(169,117,52,0.75); }
  .btn svg { width:15px; height:15px; }
  .btn--light { background:var(--paper); color:var(--ink); box-shadow:none; } .btn--light:hover { background:#fff; }
  .btn--ghost { background:transparent; color:currentColor; border:1px solid var(--line-2); box-shadow:none; }
  .on-navy .btn--ghost { border-color:var(--line-n); color:#fff; }
  .btn--ghost:hover { background:rgba(22,24,29,0.05); } .on-navy .btn--ghost:hover { background:rgba(255,255,255,0.06); }
  .tlink { display:inline-flex; align-items:center; gap:8px; font-weight:500; font-size:0.9rem; position:relative; padding-bottom:3px; color:var(--gold); }
  .tlink::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:1.5px; background:currentColor; transform-origin:right; transition:transform .45s var(--eo); }
  .tlink:hover::after { transform-origin:left; transform:scaleX(0); }
  .tlink svg { width:13px; height:13px; }

  /* NAV ------------------------------------------------------------- */
  .nav { position:fixed; z-index:100; inset:0 0 auto 0; display:flex; align-items:center; justify-content:space-between;
    padding:18px clamp(18px,8vw,78px); transition:transform .5s var(--eo),background .35s,border-color .35s,box-shadow .35s,padding .35s;
    border-bottom:1px solid transparent; color:#fff; }
  .nav a { color:#fff; }
  .nav.solid { background:rgba(247,244,236,0.86); backdrop-filter:blur(16px); border-bottom-color:var(--line); box-shadow:0 1px 24px -10px rgba(22,24,29,0.2); padding-block:12px; }
  .nav.solid, .nav.solid a { color:var(--ink); }
  .nav.hide { transform:translateY(-105%); }
  .logo { display:flex; align-items:center; gap:12px; font-family:var(--serif); font-weight:600; }
  .logo .mark { width:30px; height:26px; color:var(--gold); }
  .logo b { font-size:1.02rem; letter-spacing:-0.01em; display:flex; flex-direction:column; line-height:1.05; }
  .logo b i { font-style:normal; font-family:var(--sans); font-weight:500; font-size:0.56rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-2); }
  .nav.solid .logo b i { color:var(--gold); }
  .nav__mid { display:flex; align-items:center; gap:clamp(14px,2.4vw,32px); }
  .nav__mid a { font-family:var(--sans); font-size:0.88rem; opacity:0.85; padding:6px 0; transition:opacity .25s; }
  .nav__mid a:hover { opacity:1; }
  .nav__end { display:flex; align-items:center; gap:16px; }
  .burger { display:none; width:42px; height:42px; position:relative; z-index:130; }
  .burger span { position:absolute; left:10px; right:10px; height:2px; background:currentColor; border-radius:2px; transition:transform .4s var(--eo),opacity .25s; }
  .burger span:nth-child(1){top:16px;} .burger span:nth-child(2){bottom:16px;}
  body.menu-open .burger span:nth-child(1){transform:translateY(5px) rotate(45deg);}
  body.menu-open .burger span:nth-child(2){transform:translateY(-5px) rotate(-45deg);}
  @media (max-width:980px){ .nav__mid{display:none;} .burger{display:block;} .nav__end .btn{padding:10px 16px;font-size:0.82rem;} }
  @media (max-width:460px){ .nav__end .btn{display:none;} }
  .sheet { position:fixed; inset:0; z-index:120; background:var(--navy); color:#fff; display:flex; flex-direction:column; justify-content:center; gap:4px;
    padding:0 clamp(28px,10vw,60px); clip-path:inset(0 0 100% 0); transition:clip-path .6s var(--eo); }
  body.menu-open .sheet { clip-path:inset(0 0 0 0); }
  .sheet a { font-family:var(--serif); font-size:clamp(2rem,10vw,3rem); font-weight:500; padding:8px 0; }
  .sheet .btn { margin-top:22px; align-self:flex-start; }

  /* HERO ---------------------------------------------------------------- */
  .hero { min-height:100svh; display:flex; align-items:flex-end; position:relative; overflow:hidden; padding:0; }
  .hero__bg { position:absolute; inset:0; z-index:0; }
  .hero__bg img { width:100%; height:100%; object-fit:cover; transform:scale(1.14); }
  .hero.in .hero__bg img { transition:transform 16s linear; transform:scale(1); }
  .hero__bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,25,36,0.5) 0%,rgba(18,25,36,0.14) 30%,rgba(18,25,36,0.55) 72%,rgba(18,25,36,0.92) 100%); }
  .hero__in { position:relative; z-index:2; padding-bottom:clamp(66px,11vh,120px); padding-top:140px; color:#fff; }
  .hero__kick { color:var(--gold-2); margin-bottom:24px; } .hero__kick::before { background:var(--gold-2); }
  .hero h1 { font-size:var(--fs-hero); line-height:1.03; letter-spacing:-0.03em; max-width:17ch; color:#fff; }
  .hero h1 .ln { display:block; overflow:hidden; padding-bottom:0.08em; margin-bottom:-0.08em; }
  .hero h1 .ln > span { display:block; }
  .hero h1 .it { color:var(--gold-2); }
  .hero__sub { margin-top:24px; font-size:var(--fs-lead); color:rgba(255,255,255,0.82); max-width:48ch; }
  .hero__cta { margin-top:34px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
  .hero__cta .tlink { color:#fff; }
  .hero__trust { margin-top:28px; display:flex; gap:12px 22px; flex-wrap:wrap; font-size:0.85rem; color:rgba(255,255,255,0.72); }
  .hero__trust b { color:#fff; font-weight:600; }
  .hero__scroll { position:absolute; right:clamp(18px,8vw,78px); bottom:34px; z-index:2; writing-mode:vertical-rl;
    font-family:var(--sans); font-size:0.66rem; letter-spacing:0.24em; text-transform:uppercase; color:rgba(255,255,255,0.6); display:flex; align-items:center; gap:14px; }
  .hero__scroll i { width:1px; height:46px; background:rgba(255,255,255,0.4); position:relative; overflow:hidden; }
  .hero__scroll i::after { content:""; position:absolute; inset:0; background:var(--gold-2); transform:translateY(-100%); animation:sc 2.6s var(--eo) infinite; }
  @keyframes sc { 0%{transform:translateY(-100%);} 55%,100%{transform:translateY(100%);} }

  /* MODULE STRIP ------------------------------------------------------- */
  .modules { border-bottom:1px solid var(--line); background:var(--paper-2); }
  .modules .wrap { padding-block:clamp(30px,4vh,44px); }
  .modules__row { display:flex; gap:clamp(10px,1.6vw,18px); flex-wrap:wrap; }
  .mod { flex:1 1 160px; display:flex; align-items:center; gap:11px; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--paper);
    transition:border-color .3s,transform .4s var(--eo),background .3s; }
  .mod:hover { border-color:var(--gold-2); transform:translateY(-3px); background:var(--paper-2); }
  .mod .g { width:34px; height:34px; border-radius:9px; background:var(--gold-wash); color:var(--gold-3); display:grid; place-items:center; flex:none; }
  .mod .g svg { width:18px; height:18px; }
  .mod b { display:block; font-size:0.86rem; font-weight:600; letter-spacing:-0.01em; }
  .mod span { font-size:0.68rem; color:var(--ink-3); }

  /* STATEMENT --------------------------------------------------------- */
  .state__grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(30px,5vw,76px); align-items:center; }
  .state h2 { font-size:clamp(2.1rem,1.4rem + 3vw,4rem); letter-spacing:-0.028em; }
  .state p { color:var(--ink-2); font-size:var(--fs-lead); margin-top:22px; max-width:42ch; }
  .state__pts { margin-top:26px; display:flex; flex-direction:column; gap:12px; }
  .state__pts li { display:flex; gap:11px; font-size:0.95rem; color:var(--ink-2); }
  .state__pts svg { width:16px; height:16px; color:var(--gold); flex:none; margin-top:4px; }
  .state__fig { position:relative; }
  .state__media { position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/5; }
  .state__media img { width:100%; height:100%; object-fit:cover; will-change:transform; }
  .state__chip { position:absolute; left:-20px; bottom:26px; background:var(--paper-2); border:1px solid var(--line); border-radius:12px;
    padding:12px 16px; box-shadow:var(--shadow); z-index:2; }
  .state__chip b { font-family:var(--serif); font-size:1.35rem; display:block; }
  .state__chip span { font-size:0.72rem; color:var(--ink-2); }
  @media (max-width:880px){ .state__grid{grid-template-columns:1fr;} .state__media{aspect-ratio:16/11;} .state__chip{left:12px;} }

  /* PLATFORM --------------------------------------------------------- */
  .platform { background:var(--navy); color:#fff; }
  .platform .sec-head { margin-inline:auto; text-align:center; align-items:center; max-width:40ch; }
  .platform__stage { position:relative; margin-top:clamp(30px,5vh,60px); }
  .platform__shot { border-radius:14px; overflow:hidden; box-shadow:0 60px 120px -50px rgba(0,0,0,0.7); border:1px solid rgba(255,255,255,0.08); max-width:1060px; margin-inline:auto; }
  .app { display:grid; grid-template-columns:66px 1fr; background:var(--paper-2); min-height:440px; }
  .app__rail { background:#0e1520; display:flex; flex-direction:column; align-items:center; gap:6px; padding:14px 0; }
  .app__rail .rmark { width:26px; height:22px; color:var(--gold-2); margin-bottom:8px; }
  .app__rail button { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; color:rgba(255,255,255,0.5); }
  .app__rail button svg { width:19px; height:19px; }
  .app__rail button.on { background:rgba(200,154,83,0.16); color:var(--gold-2); }
  .app__main { padding:20px 22px; font-family:var(--sans); color:var(--ink); }
  .app__hd { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
  .app__hd b { font-family:var(--serif); font-size:1.2rem; }
  .app__hd span { font-size:0.7rem; color:var(--ink-3); border:1px solid var(--line); border-radius:100px; padding:4px 10px; }
  .app__kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
  .app__kpis .k { border:1px solid var(--line); border-radius:10px; padding:11px 12px; }
  .app__kpis .k b { font-family:var(--serif); font-size:1.15rem; display:block; }
  .app__kpis .k i { font-style:normal; font-size:0.62rem; color:#2f7d4f; }
  .app__kpis .k span { font-size:0.58rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--ink-3); }
  .app__chart { margin-top:12px; border:1px solid var(--line); border-radius:10px; padding:12px; }
  .app__chart svg { width:100%; height:80px; overflow:visible; }
  .app__chart .ln { fill:none; stroke:var(--gold); stroke-width:2.5; stroke-linecap:round; stroke-dasharray:640; stroke-dashoffset:640; }
  .in .app__chart .ln { transition:stroke-dashoffset 1.8s var(--eo) .3s; stroke-dashoffset:0; }
  .app__chart .b { fill:var(--gold-wash); transform:scaleY(0); transform-origin:bottom; transform-box:fill-box; }
  .in .app__chart .b { transition:transform .7s var(--eo); transform:scaleY(1); }
  .in .app__chart .b:nth-child(2){transition-delay:.05s;} .in .app__chart .b:nth-child(3){transition-delay:.1s;}
  .in .app__chart .b:nth-child(4){transition-delay:.15s;} .in .app__chart .b:nth-child(5){transition-delay:.2s;}
  .in .app__chart .b:nth-child(6){transition-delay:.25s;} .in .app__chart .b:nth-child(7){transition-delay:.3s;}
  .app__tbl { margin-top:12px; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
  .app__tbl .r { display:grid; grid-template-columns:auto 1fr auto auto; gap:12px; align-items:center; padding:9px 12px; font-size:0.72rem; border-top:1px solid var(--line); }
  .app__tbl .r:first-child { border-top:0; background:var(--paper); font-size:0.6rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-3); }
  .app__tbl .pill { font-size:0.6rem; border-radius:100px; padding:3px 8px; background:var(--gold-wash); color:var(--gold-3); }
  .app__tbl .amt { font-family:var(--serif); color:var(--gold); }
  .callout { position:absolute; display:none; font-family:var(--sans); font-size:0.7rem; color:#fff; align-items:center; gap:8px; }
  .callout::before { content:""; width:26px; height:1px; background:var(--gold-2); }
  .callout b { background:rgba(200,154,83,0.16); border:1px solid var(--gold-2); border-radius:100px; padding:4px 10px; font-weight:500; color:var(--gold-2); }
  @media (min-width:1120px){ .callout{display:flex;}
    .callout--a{top:16%;left:calc(50% + 470px);flex-direction:row-reverse;} .callout--a::before{transform:scaleX(-1);}
    .callout--b{top:52%;left:calc(50% - 640px);} .callout--c{bottom:14%;left:calc(50% + 430px);flex-direction:row-reverse;} .callout--c::before{transform:scaleX(-1);} }
  @media (max-width:560px){ .app{grid-template-columns:1fr;} .app__rail{flex-direction:row; justify-content:center;} .app__rail .rmark{display:none;} .app__kpis{grid-template-columns:1fr 1fr;} }

  /* SOLUTIONS ------------------------------------------------------------ */
  .sol { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,84px); align-items:center; padding-block:clamp(48px,8vh,100px); position:relative; }
  .sol + .sol { border-top:1px solid var(--line); }
  .sol:nth-of-type(even) .sol__media { order:-1; }
  .sol__ghost { position:absolute; top:clamp(20px,5vh,60px); font-family:var(--serif); font-size:clamp(6rem,16vw,13rem); line-height:0.8; color:var(--gold);
    opacity:0.06; font-weight:500; z-index:0; pointer-events:none; }
  .sol:nth-of-type(even) .sol__ghost { right:0; } .sol:nth-of-type(odd) .sol__ghost { left:0; }
  .sol__body, .sol__media { position:relative; z-index:1; }
  .sol__no { font-family:var(--serif); font-size:0.95rem; color:var(--gold); letter-spacing:0.06em; }
  .sol h3 { font-size:clamp(1.7rem,1.3rem + 1.9vw,2.7rem); margin-top:12px; }
  .sol__desc { color:var(--ink-2); margin-top:16px; font-size:1.04rem; max-width:44ch; }
  .sol__feat { margin-top:24px; display:grid; grid-template-columns:1fr 1fr; gap:8px 26px; }
  .sol__feat li { display:flex; gap:10px; font-size:0.9rem; color:var(--ink-2); align-items:flex-start; }
  .sol__feat svg { width:15px; height:15px; color:var(--gold); flex:none; margin-top:3px; }
  .sol__cta { margin-top:26px; display:inline-flex; }
  @media (max-width:880px){ .sol{grid-template-columns:1fr; gap:34px;} .sol .sol__media,.sol:nth-of-type(even) .sol__media{order:-1;} .sol__feat{grid-template-columns:1fr;} }

  .device { border-radius:14px; background:var(--navy); box-shadow:var(--shadow); overflow:hidden; border:1px solid rgba(0,0,0,0.06); }
  .device__bar { display:flex; align-items:center; gap:6px; padding:11px 14px; background:#0e1520; }
  .device__bar i { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,0.22); }
  .device__bar .url { margin-left:12px; flex:1; height:20px; border-radius:6px; background:rgba(255,255,255,0.08); display:flex; align-items:center; padding:0 10px; font-family:var(--sans); font-size:0.62rem; color:rgba(255,255,255,0.4); }
  .screen { background:var(--paper-2); padding:18px; font-family:var(--sans); }
  .mock-search { display:grid; grid-template-columns:1fr 1fr auto; gap:8px; }
  .mock-search .fld { background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:9px 11px; font-size:0.7rem; color:var(--ink-2); }
  .mock-search .fld b { display:block; font-size:0.58rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--ink-3); margin-bottom:3px; }
  .mock-search .go { background:var(--gold); color:#fff; border-radius:8px; display:grid; place-items:center; padding-inline:16px; font-size:0.72rem; font-weight:600; }
  .mock-fl { margin-top:12px; display:flex; flex-direction:column; gap:8px; }
  .fl-row { display:grid; grid-template-columns:auto 1fr auto auto; gap:12px; align-items:center; border:1px solid var(--line); border-radius:8px; padding:10px 12px; background:var(--paper); }
  .fl-row .dot { width:22px; height:22px; border-radius:50%; background:var(--gold-wash); border:1px solid var(--gold-2); }
  .fl-row .rt { font-size:0.74rem; color:var(--ink); font-weight:600; }
  .fl-row .rt span { display:block; font-weight:400; font-size:0.62rem; color:var(--ink-3); }
  .fl-row .pr { font-family:var(--serif); font-size:0.95rem; color:var(--gold); }
  .fl-row .sel { font-size:0.6rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-3); border:1px solid var(--line-2); border-radius:100px; padding:4px 9px; }
  .mock-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
  .kpi { background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:10px; }
  .kpi b { font-family:var(--serif); font-size:1.05rem; display:block; }
  .kpi span { font-size:0.56rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-3); }
  .mock-chart { margin-top:12px; border:1px solid var(--line); border-radius:8px; padding:12px; background:var(--paper); }
  .mock-chart svg { width:100%; height:88px; overflow:visible; }
  .mock-chart .line { fill:none; stroke:var(--gold); stroke-width:2.5; stroke-linecap:round; stroke-dasharray:620; stroke-dashoffset:620; }
  .in .mock-chart .line { transition:stroke-dashoffset 1.8s var(--eo) .2s; stroke-dashoffset:0; }
  .mock-chart .bar { fill:var(--gold-wash); transform:scaleY(0); transform-origin:bottom; transform-box:fill-box; }
  .in .mock-chart .bar { transition:transform .7s var(--eo); transform:scaleY(1); }
  .in .mock-chart .bar:nth-child(2){transition-delay:.05s;} .in .mock-chart .bar:nth-child(3){transition-delay:.1s;}
  .in .mock-chart .bar:nth-child(4){transition-delay:.15s;} .in .mock-chart .bar:nth-child(5){transition-delay:.2s;}
  .in .mock-chart .bar:nth-child(6){transition-delay:.25s;} .in .mock-chart .bar:nth-child(7){transition-delay:.3s;}
  .mock-site .banner { border-radius:8px; background:linear-gradient(120deg,var(--navy),var(--navy-2)); color:#fff; padding:20px; font-family:var(--serif); font-size:1rem; }
  .mock-site .banner span { font-family:var(--sans); font-size:0.62rem; color:rgba(255,255,255,0.6); display:block; margin-top:4px; }
  .mock-dest { margin-top:10px; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
  .mock-dest figure { border-radius:8px; overflow:hidden; aspect-ratio:1/1; position:relative; }
  .mock-dest img { width:100%; height:100%; object-fit:cover; }
  .mock-dest figcaption { position:absolute; left:7px; bottom:6px; color:#fff; font-size:0.6rem; font-weight:600; text-shadow:0 1px 4px rgba(0,0,0,0.5); }
  .api-wrap { position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:var(--navy); aspect-ratio:5/4.4; }
  .api-wrap img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.3; }
  .api-wrap svg { position:absolute; inset:0; width:100%; height:100%; }
  .api-wrap .spoke { stroke:var(--gold-2); stroke-width:1.4; stroke-dasharray:5 6; opacity:0.75; }
  .api-wrap.anim .spoke { animation:flow 3s linear infinite; }
  @keyframes flow { to { stroke-dashoffset:-44; } }
  .api-wrap .node { fill:#0e1520; stroke:var(--gold-2); stroke-width:1.2; }
  .api-wrap .nlabel { fill:#fff; font-family:var(--sans); font-size:7px; font-weight:500; text-anchor:middle; }
  .api-wrap .core { fill:var(--gold); }
  .api-wrap .corelabel { fill:#fff; font-family:var(--serif); font-size:13px; text-anchor:middle; font-weight:600; }
  .wa { max-width:300px; margin-inline:auto; border-radius:26px; overflow:hidden; box-shadow:var(--shadow); background:#0b141a; border:8px solid #0b141a; }
  .wa__hd { background:#1f2c33; color:#fff; padding:12px 14px; display:flex; align-items:center; gap:10px; }
  .wa__hd .av { width:30px; height:30px; border-radius:50%; background:var(--gold); display:grid; place-items:center; font-size:0.8rem; }
  .wa__hd b { font-size:0.82rem; display:block; } .wa__hd span { font-size:0.6rem; color:rgba(255,255,255,0.55); }
  .wa__body { background:#0b141a; padding:14px 12px; display:flex; flex-direction:column; gap:9px; min-height:340px; }
  .wa .msg { max-width:82%; padding:8px 11px; border-radius:10px; font-size:0.74rem; line-height:1.4; opacity:0; transform:translateY(10px); }
  .in .wa .msg { transition:opacity .5s var(--eo),transform .5s var(--eo); opacity:1; transform:none; }
  .in .wa .msg:nth-child(1){transition-delay:.15s;} .in .wa .msg:nth-child(2){transition-delay:.4s;}
  .in .wa .msg:nth-child(3){transition-delay:.75s;} .in .wa .msg:nth-child(4){transition-delay:1.05s;}
  .wa .out { align-self:flex-end; background:#144d37; color:#e9ffe9; border-bottom-right-radius:3px; }
  .wa .in-m { align-self:flex-start; background:#1f2c33; color:#fff; border-bottom-left-radius:3px; }
  .wa .pic { align-self:flex-end; padding:4px; background:#144d37; border-radius:10px; }
  .wa .pic img { border-radius:7px; width:150px; height:96px; object-fit:cover; }

  /* floating UI toast */
  .toast { position:absolute; z-index:3; background:var(--paper-2); border:1px solid var(--line); border-radius:12px; padding:11px 14px;
    box-shadow:var(--shadow); display:flex; align-items:center; gap:10px; font-size:0.78rem; max-width:250px; }
  .toast .d { width:26px; height:26px; border-radius:8px; background:var(--gold-wash); color:var(--gold-3); display:grid; place-items:center; flex:none; }
  .toast .d svg { width:14px; height:14px; }
  .toast b { display:block; font-weight:600; } .toast span { color:var(--ink-3); font-size:0.7rem; }
  @media (max-width:880px){ .toast{display:none;} }

  /* WHY -------------------------------------------------------------- */
  .why__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.8vw,22px); }
  .why-card { background:var(--paper-2); border:1px solid var(--line); border-radius:14px; padding:clamp(22px,2.4vw,30px); display:flex; flex-direction:column; gap:14px;
    transition:transform .5s var(--eo),box-shadow .5s var(--eo); }
  .why-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
  .why-card .ic { width:40px; height:40px; border-radius:10px; background:var(--gold-wash); color:var(--gold-3); display:grid; place-items:center; }
  .why-card .ic svg { width:20px; height:20px; }
  .why-card h3 { font-family:var(--sans); font-weight:600; font-size:1.08rem; }
  .why-card p { color:var(--ink-2); font-size:0.92rem; flex:1; }
  .why-card .viz { height:34px; }
  .why-card .viz svg { height:34px; width:auto; overflow:visible; }
  .why-card .viz .b { fill:var(--gold-2); }
  .why-card .viz .l { fill:none; stroke:var(--gold); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
  @media (max-width:900px){ .why__grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .why__grid{grid-template-columns:1fr;} }

  /* HOW ----------------------------------------------------------------- */
  .how__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2.4vw,40px); position:relative; padding-top:64px; }
  .how__route { position:absolute; top:0; left:0; right:0; height:64px; z-index:0; overflow:visible; }
  .how__route path { fill:none; stroke:var(--gold-2); stroke-width:2; stroke-dasharray:4 8; stroke-linecap:round; }
  .how__route .plane { fill:var(--gold); }
  .how-step { position:relative; z-index:1; display:flex; flex-direction:column; gap:12px; }
  .how-step .n { width:52px; height:52px; border-radius:50%; background:var(--gold); color:#fff; font-family:var(--serif); font-size:1.5rem; font-weight:500;
    display:grid; place-items:center; margin-top:-70px; border:5px solid var(--paper); box-shadow:0 8px 24px -10px rgba(169,117,52,0.6); }
  .how-step h3 { font-family:var(--sans); font-weight:600; font-size:1.2rem; }
  .how-step p { color:var(--ink-2); font-size:0.92rem; }
  @media (max-width:900px){ .how__grid{grid-template-columns:1fr 1fr; gap:44px 24px; padding-top:20px;} .how__route{display:none;} .how-step .n{margin-top:0;} }
  @media (max-width:520px){ .how__grid{grid-template-columns:1fr;} }

  /* GLOBAL BAND ---------------------------------------------------------- */
  .global { background:var(--navy); color:#fff; overflow:hidden; }
  .global__bg { position:absolute; inset:0; z-index:0; }
  .global__bg img { width:100%; height:100%; object-fit:cover; opacity:0.4; will-change:transform; }
  .global__bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,var(--navy) 2%,rgba(18,25,36,0.38) 46%,var(--navy) 98%); }
  .global .wrap { position:relative; z-index:2; }
  .global h2 { font-size:var(--fs-h2); max-width:20ch; color:#fff; }
  .global__stats { margin-top:clamp(40px,6vh,64px); display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,3vw,44px); }
  .gstat b { font-family:var(--serif); font-size:clamp(2.4rem,1.6rem + 3vw,4rem); font-weight:500; letter-spacing:-0.03em; line-height:1; color:#fff; font-variant-numeric:tabular-nums; }
  .gstat b em { font-style:normal; color:var(--gold-2); font-size:0.55em; }
  .gstat span { color:rgba(247,244,236,0.65); font-size:0.88rem; }
  .global__chips { margin-top:clamp(30px,5vh,52px); display:flex; flex-wrap:wrap; gap:10px; }
  .global__chips span { font-size:0.78rem; border:1px solid var(--line-n); border-radius:100px; padding:7px 14px; color:rgba(247,244,236,0.85); }
  .global__chips span::before { content:"› "; color:var(--gold-2); }
  @media (max-width:720px){ .global__stats{grid-template-columns:1fr 1fr; gap:32px 20px;} }

  /* PRICING ------------------------------------------------------------- */
  .price__card { position:relative; background:var(--navy); color:#fff; border-radius:var(--radius); padding:clamp(32px,4vw,56px);
    display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); box-shadow:var(--shadow); overflow:hidden; }
  .price__ribbon { position:absolute; top:20px; right:-42px; transform:rotate(45deg); background:var(--gold); color:#fff; font-size:0.66rem; font-weight:600;
    letter-spacing:0.14em; text-transform:uppercase; padding:6px 52px; }
  .price__lead h3 { color:#fff; font-size:clamp(1.6rem,1.2rem + 1.6vw,2.3rem); }
  .price__amt { margin-top:18px; display:flex; align-items:baseline; gap:8px; }
  .price__amt b { font-family:var(--serif); font-size:clamp(2.8rem,2rem + 3vw,4.4rem); font-weight:500; letter-spacing:-0.03em; }
  .price__amt span { color:rgba(255,255,255,0.6); font-size:0.95rem; }
  .price__note { color:rgba(247,244,236,0.6); font-size:0.82rem; margin-top:10px; }
  .price__cta { margin-top:26px; display:flex; gap:14px; flex-wrap:wrap; }
  .price__list { display:grid; gap:11px; align-content:center; }
  .price__list li { display:flex; gap:12px; align-items:flex-start; font-size:0.95rem; color:rgba(247,244,236,0.9); }
  .price__list svg { width:17px; height:17px; color:var(--gold-2); flex:none; margin-top:3px; }
  .price__list li span { display:block; font-size:0.76rem; color:rgba(247,244,236,0.55); }
  @media (max-width:760px){ .price__card{grid-template-columns:1fr;} }

  /* QUOTES ------------------------------------------------------------ */
  .qmeta { display:flex; gap:26px; flex-wrap:wrap; margin-bottom:clamp(34px,5vh,54px); }
  .qmeta div b { font-family:var(--serif); font-size:1.7rem; display:block; color:var(--gold-3); }
  .qmeta div span { font-size:0.8rem; color:var(--ink-3); }
  .quotes { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,30px); }
  .quote { position:relative; background:var(--paper-2); border:1px solid var(--line); border-radius:14px; padding:clamp(24px,2.6vw,34px); display:flex; flex-direction:column; gap:20px; overflow:hidden; }
  .quote::before { content:"\201C"; position:absolute; top:-24px; right:14px; font-family:var(--serif); font-size:7rem; color:var(--gold); opacity:0.12; }
  .quote p { font-family:var(--serif); font-size:1.06rem; line-height:1.45; position:relative; }
  .quote .by { display:flex; align-items:center; gap:12px; }
  .quote .by img { width:42px; height:42px; border-radius:50%; object-fit:cover; }
  .quote .by b { display:block; font-weight:600; font-size:0.9rem; }
  .quote .by span { font-size:0.78rem; color:var(--ink-3); }
  @media (max-width:900px){ .quotes{grid-template-columns:1fr;} }

  /* CONTACT ---------------------------------------------------------- */
  .contact { background:var(--navy); color:#fff; }
  .contact__grid { display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(34px,5vw,78px); }
  .contact__left h2 { color:#fff; font-size:var(--fs-h2); }
  .contact__pts { margin-top:26px; display:flex; flex-direction:column; gap:13px; }
  .contact__pts li { display:flex; gap:12px; color:rgba(247,244,236,0.75); font-size:0.95rem; }
  .contact__pts svg { width:18px; height:18px; color:var(--gold-2); flex:none; margin-top:2px; }
  .contact__info { margin-top:28px; font-size:0.9rem; color:rgba(247,244,236,0.7); line-height:1.95; }
  .contact__info a { color:#fff; border-bottom:1px solid rgba(255,255,255,0.3); }
  .form { background:var(--paper); color:var(--ink); border-radius:var(--radius); padding:clamp(26px,3vw,40px); box-shadow:var(--shadow); }
  .form__row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .field { display:flex; flex-direction:column; gap:7px; margin-bottom:15px; }
  .field label { font-size:0.8rem; font-weight:600; }
  .field label .r { color:var(--gold); }
  .field input,.field select,.field textarea { background:var(--paper-2); border:1px solid var(--line-2); border-radius:8px; padding:12px 14px; font-size:0.94rem; width:100%; transition:border-color .25s,box-shadow .25s; }
  .field textarea { resize:vertical; min-height:100px; }
  .field :focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-wash); }
  .form .btn { width:100%; justify-content:center; margin-top:4px; }
  .form__fine { margin-top:12px; font-size:0.75rem; color:var(--ink-3); text-align:center; }
  .form__done { display:none; text-align:center; padding:clamp(28px,6vw,56px) 8px; }
  .form__done svg { width:44px; height:44px; color:var(--gold); margin:0 auto 16px; }
  .form__done h3 { font-size:1.5rem; margin-bottom:8px; }
  .form__done p { color:var(--ink-2); }
  form.sent .form__body { display:none; } form.sent .form__done { display:block; }
  @media (max-width:860px){ .contact__grid{grid-template-columns:1fr;} }
  @media (max-width:520px){ .form__row{grid-template-columns:1fr;} }

  /* FAQ ------------------------------------------------------------- */
  .faq__grid { display:grid; grid-template-columns:0.7fr 1.3fr; gap:clamp(30px,5vw,72px); align-items:start; }
  .faq__help { border:1px solid var(--line); border-radius:14px; padding:clamp(24px,2.6vw,32px); background:var(--paper-2); position:sticky; top:100px; }
  .faq__help .k { color:var(--gold-3); }
  .faq__help h3 { font-size:1.35rem; margin:12px 0 8px; }
  .faq__help p { color:var(--ink-2); font-size:0.92rem; margin-bottom:18px; }
  .faq__list { border-top:1px solid var(--line); }
  .faq__item { border-bottom:1px solid var(--line); }
  .faq__q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:clamp(18px,2.4vh,26px) 0; text-align:left; font-family:var(--serif); font-size:clamp(1.05rem,1rem + 0.5vw,1.32rem); font-weight:500; }
  .faq__q .ic { flex:none; width:20px; height:20px; position:relative; }
  .faq__q .ic::before,.faq__q .ic::after { content:""; position:absolute; inset:0; margin:auto; background:var(--gold); border-radius:2px; }
  .faq__q .ic::before { width:100%; height:2px; }
  .faq__q .ic::after { width:2px; height:100%; transition:transform .4s var(--eo); }
  .faq__item.open .ic::after { transform:scaleY(0); }
  .faq__a { display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--eo); }
  .faq__item.open .faq__a { grid-template-rows:1fr; }
  .faq__a > div { overflow:hidden; }
  .faq__a p { color:var(--ink-2); padding-bottom:clamp(18px,2.4vh,26px); max-width:66ch; }
  @media (max-width:860px){ .faq__grid{grid-template-columns:1fr;} .faq__help{position:static;} }

  /* FINAL + FOOTER -------------------------------------------------- */
  .final { position:relative; overflow:hidden; color:#fff; text-align:center; }
  .final__bg { position:absolute; inset:0; z-index:0; }
  .final__bg img { width:100%; height:100%; object-fit:cover; }
  .final__bg::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,25,36,0.82),rgba(18,25,36,0.92)); }
  .final .wrap { position:relative; z-index:2; }
  .final h2 { color:#fff; font-size:clamp(2.2rem,1.4rem + 3.6vw,4.4rem); max-width:18ch; margin-inline:auto; }
  .final .btn { margin-top:32px; }
  .final small { display:block; margin-top:18px; color:rgba(255,255,255,0.6); font-size:0.9rem; }
  footer { background:var(--navy); color:rgba(247,244,236,0.7); padding-block:clamp(50px,7vh,86px); position:relative; overflow:hidden; }
  .foot__top { display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; }
  .foot__brand { display:flex; align-items:center; gap:12px; color:#fff; font-family:var(--serif); }
  .foot__brand .mark { width:34px; height:30px; color:var(--gold-2); }
  .foot__brand b { font-size:1.15rem; font-weight:600; display:flex; flex-direction:column; line-height:1.1; }
  .foot__brand b i { font-style:normal; font-family:var(--sans); font-weight:500; font-size:0.56rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-2); }
  .foot__nav { display:flex; gap:18px 28px; flex-wrap:wrap; }
  .foot__nav a { font-family:var(--sans); font-size:0.86rem; }
  .foot__nav a:hover { color:#fff; }
  .foot__bot { margin-top:clamp(34px,5vh,56px); padding-top:24px; border-top:1px solid var(--line-n); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:0.8rem; color:rgba(247,244,236,0.5); }

  .float { position:fixed; right:20px; bottom:20px; z-index:95; opacity:0; transform:translateY(18px); pointer-events:none; transition:opacity .5s var(--eo),transform .5s var(--eo); }
  .float.show { opacity:1; transform:none; pointer-events:auto; }

  /* reveals */
  .js [data-rv] { opacity:0; transform:translateY(22px); transition:opacity .8s var(--eo),transform .8s var(--eo); }
  .js [data-rv].in { opacity:1; transform:none; }
  .js [data-mask] { overflow:hidden; padding-bottom:0.12em; margin-bottom:-0.12em; }
  .js [data-mask] > * { display:block; transform:translateY(115%); transition:transform .95s var(--eo); }
  .js [data-mask].in > * { transform:none; }
  .js .hero h1 .ln > span { transform:translateY(115%); transition:transform 1s var(--eo); }
  .js .hero h1.in .ln:nth-child(1) > span { transition-delay:.05s; }
  .js .hero h1.in .ln:nth-child(2) > span { transition-delay:.14s; }
  .js .hero h1.in .ln > span { transform:none; }
  .js [data-stag] > * { opacity:0; transform:translateY(18px); transition:opacity .6s var(--eo),transform .6s var(--eo); }
  .js [data-stag].in > * { opacity:1; transform:none; }
  .js .toast { opacity:0; transform:translateY(14px) scale(0.96); transition:opacity .6s var(--eo),transform .6s var(--eo); }
  .js .in .toast, .js .toast.in { opacity:1; transform:none; }

  .cursor { position:fixed; top:0; left:0; z-index:200; pointer-events:none; border-radius:50%; will-change:transform; }
  .cursor--d { width:5px; height:5px; margin:-2.5px 0 0 -2.5px; background:var(--gold); }
  .cursor--r { width:30px; height:30px; margin:-15px 0 0 -15px; border:1.5px solid var(--line-2); display:grid; place-items:center;
    transition:width .3s var(--eo),height .3s var(--eo),margin .3s var(--eo),background .3s,border-color .3s; }
  .cursor--r b { font-size:8px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:#fff; opacity:0; }
  body.cur-lg .cursor--r { width:58px; height:58px; margin:-29px 0 0 -29px; background:var(--gold); border-color:var(--gold); }
  body.cur-lg .cursor--r b { opacity:1; }
  @media (pointer:coarse),(max-width:980px){ .cursor{display:none;} }

  @media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
    .js [data-rv],.js [data-mask] > *,.js .hero h1 .ln > span,.js [data-stag] > *,.js .toast { opacity:1 !important; transform:none !important; }
    .hero__bg img { transform:none !important; }
    .cursor { display:none !important; }
    .mock-chart .line,.app__chart .ln { stroke-dashoffset:0 !important; }
    .mock-chart .bar,.app__chart .b,.wa .msg { transform:none !important; opacity:1 !important; }
  }

/* ---- server-side form validation messages (MVC) -------------------- */
.field-err { color:#b23b2e; font-size:0.82rem; margin-bottom:14px; }
.field-err ul { list-style:disc; padding-left:18px; }
.field-err li { margin:2px 0; }

/* ---- footer: crafted-in-Bharat mark -------------------------------- */
.foot__crafted { display:inline-flex; align-items:center; gap:8px; }
.foot__crafted .flag-in { width:20px; height:auto; border-radius:2px; display:block; flex:none; }

/* ---- thank-you modal --------------------------------------------- */
.modal { position:fixed; inset:0; z-index:300; display:grid; place-items:center; }
.modal[hidden] { display:none; }
.modal__backdrop { position:absolute; inset:0; background:rgba(18,25,36,0.55); backdrop-filter:blur(4px); }
.modal__card { position:relative; z-index:1; background:var(--paper-2); color:var(--ink); border-radius:16px;
  padding:clamp(30px,5vw,52px); max-width:420px; width:calc(100% - 40px); text-align:center; box-shadow:var(--shadow);
  animation:modalIn .5s var(--eo); }
@keyframes modalIn { from { opacity:0; transform:translateY(16px) scale(0.96); } }
.modal__tick { width:56px; height:56px; border-radius:50%; background:var(--gold-wash); color:var(--gold-3);
  display:grid; place-items:center; margin:0 auto 18px; }
.modal__tick svg { width:26px; height:26px; }
.modal__card h3 { font-size:1.6rem; color:var(--ink); }   /* beat .on-navy h3 { color:#fff } */
.modal__card p { color:var(--ink-2); margin-top:10px; }
.modal__card > .btn { margin-top:24px; }
.modal__x { position:absolute; top:12px; right:16px; font-size:1.5rem; line-height:1; color:var(--ink-3); background:none; border:0; cursor:pointer; }
.modal__x:hover { color:var(--ink); }
@media (prefers-reduced-motion:reduce){ .modal__card { animation:none; } }
