/* ==========================================================================
   BranexMedia — Design System & Global Styles
   --------------------------------------------------------------------------
   1. Tokens      2. Base        3. Layout & utilities   4. Buttons
   5. Header      6. Mega menu   7. Mobile drawer        8. Footer
   9. Hero       10. Sections   11. Charts/dashboard    12. Services
   13. Portfolio 14. Contact    15. Prose/legal/404     16. Motion
   17. Responsive
   ========================================================================== */

/* ---------- 1. TOKENS ---------- */
@font-face{font-family:"Inter Display";src:url("../fonts/display-700.woff") format("woff");font-weight:700;font-display:swap}
@font-face{font-family:"Inter Display";src:url("../fonts/display-800.woff") format("woff");font-weight:800;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/text-400.woff") format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/text-500.woff") format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/text-600.woff") format("woff");font-weight:600;font-display:swap}

:root{
  /* surfaces */
  --bg:#050812;
  --bg-2:#070d1a;
  --surface:#0a1322;
  --surface-2:#0e1a2e;
  --line:rgba(112,174,255,.14);
  --line-strong:rgba(130,185,255,.28);
  /* type colours */
  --text:#f3f3f8;
  --text-soft:#c3c3d1;
  --muted:#9393a6;
  /* brand */
  --violet:#9b4dff;
  --violet-hi:#b794ff;
  --violet-lo:#6d3df0;
  --purple:#c026d3;
  --cyan:#19e1e9;
  --glow:rgba(155,77,255,.45);
  /* typography */
  --font-display:"Inter Display","Inter","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  --font-body:"Inter","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;
  --fs-h3:clamp(1.25rem,1.1rem + .6vw,1.65rem);
  --fs-h2:clamp(2rem,1.3rem + 3vw,3.6rem);
  --fs-h1:clamp(2.5rem,1.2rem + 5.4vw,6.2rem);
  --fs-hero:clamp(2.6rem,1rem + 6.4vw,6.9rem);
  /* spacing (8pt) */
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4rem;--s9:6rem;--s10:9rem;
  --section-y:clamp(4.5rem,3rem + 7vw,9rem);
  --gutter:clamp(1.25rem,.6rem + 3vw,3rem);
  --max:1320px;
  /* shape + depth */
  --r:3px;--r-lg:6px;
  --shadow-1:0 1px 0 rgba(255,255,255,.04) inset,0 18px 40px -22px rgba(0,0,0,.8);
  --shadow-glow:0 0 0 1px rgba(139,92,246,.35),0 20px 60px -20px var(--glow);
  /* motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --t-fast:.18s;--t-med:.45s;--t-slow:.9s;
  --header-h:76px;
}

/* ---------- 2. BASE ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 24px);color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--text-soft);font-family:var(--font-body);font-size:var(--fs-md);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);color:var(--text);font-weight:800;line-height:1.04;letter-spacing:-.03em}
h1{font-size:var(--fs-h1)} h2{font-size:var(--fs-h2)} h3{font-size:var(--fs-h3);letter-spacing:-.02em;line-height:1.2;font-weight:700}
h4{font-size:var(--fs-lg);letter-spacing:-.01em;line-height:1.3;font-weight:700}
p{margin:0}
::selection{background:var(--violet);color:#fff}
:focus{outline:none}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:2px}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;background:var(--violet);color:#fff;padding:.75rem 1.25rem;border-radius:var(--r);font-weight:600;transition:top var(--t-fast)}
.skip-link:focus{top:1rem}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* film grain overlay (static, GPU-cheap) */
body::after{content:"";position:fixed;inset:0;z-index:900;pointer-events:none;opacity:.055;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* ---------- 3. LAYOUT & UTILITIES ---------- */
.container{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.section{position:relative;padding-block:var(--section-y)}
.section--tight{padding-block:calc(var(--section-y) * .6)}
.section--alt{background:linear-gradient(180deg,var(--bg-2),var(--bg))}
.section--line{border-top:1px solid var(--line)}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--violet-hi);margin-bottom:var(--s5)}
.eyebrow::before{content:"";width:28px;height:1px;background:linear-gradient(90deg,var(--violet),var(--cyan))}
.lead{font-size:clamp(1.05rem,.95rem + .5vw,1.3rem);color:var(--text-soft);max-width:60ch}
.muted{color:var(--muted)}
.grad-text{background:linear-gradient(95deg,#fff 0%,var(--violet-hi) 45%,var(--cyan) 110%);-webkit-background-clip:text;background-clip:text;color:transparent}
.violet{color:var(--violet-hi)}
.section-head{display:grid;gap:var(--s5);margin-bottom:clamp(2.5rem,2rem + 3vw,5rem);max-width:60rem}
.section-head--split{max-width:none;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;gap:var(--s7)}
.grid-bg{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 20%,transparent 75%);opacity:.55}
.glow-orb{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none;opacity:.55}
.sample-tag{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#e9d5ff;border:1px solid rgba(167,139,250,.4);background:rgba(139,92,246,.1);padding:.35rem .65rem;border-radius:var(--r)}
.sample-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan)}
.visually-media{overflow:hidden;position:relative;background:var(--surface);border:1px solid var(--line)}
.visually-media img{width:100%;height:100%;object-fit:cover}

/* ---------- 4. BUTTONS ---------- */
.btn{--btn-bg:var(--violet);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:3.1rem;padding:.85rem 1.5rem;font-weight:600;font-size:var(--fs-sm);letter-spacing:.01em;color:#fff;background:var(--btn-bg);border-radius:var(--r);border:1px solid transparent;overflow:hidden;isolation:isolate;transition:transform var(--t-fast) var(--ease),box-shadow var(--t-med) var(--ease),background var(--t-med),border-color var(--t-med);white-space:nowrap}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.28) 50%,transparent 80%);transform:translateX(-120%);transition:transform .8s var(--ease)}
.btn:hover::before{transform:translateX(120%)}
.btn:hover{box-shadow:var(--shadow-glow);transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.985);transition-duration:.08s}
.btn .arr{width:16px;height:16px;transition:transform var(--t-med) var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn--primary{background:linear-gradient(120deg,var(--violet-lo),var(--violet) 55%,#9f6bff)}
.btn--ghost{background:transparent;border-color:var(--line-strong);color:var(--text)}
.btn--ghost:hover{border-color:var(--violet-hi);background:rgba(139,92,246,.08)}
.btn--sm{min-height:2.6rem;padding:.55rem 1.1rem}
.btn--lg{min-height:3.6rem;padding:1rem 2rem;font-size:var(--fs-md)}
.link-arrow{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;font-size:var(--fs-sm);color:var(--text);border-bottom:1px solid var(--line-strong);padding-bottom:.25rem;transition:color var(--t-fast),border-color var(--t-fast),gap var(--t-med) var(--ease)}
.link-arrow:hover{color:var(--violet-hi);border-color:var(--violet-hi);gap:.95rem}
.link-arrow svg{width:14px;height:14px}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:center}

/* ---------- 5. HEADER ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:500;height:var(--header-h);transition:background var(--t-med),border-color var(--t-med),backdrop-filter var(--t-med),transform var(--t-med) var(--ease);border-bottom:1px solid transparent}
.site-header::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,7,11,.78),rgba(7,7,11,0));pointer-events:none;transition:opacity var(--t-med)}
.site-header.is-scrolled{background:rgba(8,8,13,.9);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border-bottom-color:var(--line)}
.site-header.is-scrolled::before{opacity:0}
.header-inner{position:relative;height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s6)}
.logo{display:inline-flex;align-items:center;gap:.7rem;color:var(--text);flex-shrink:0}
.logo svg{width:34px;height:34px;overflow:visible}
.logo .logo-mark{fill:currentColor}
.logo .logo-accent{fill:var(--violet)}
.logo-text{font-family:var(--font-display);font-weight:800;font-size:1.22rem;letter-spacing:.06em;line-height:1;display:inline-flex;align-items:baseline;gap:.34em}
.logo-text b{font-weight:800}
.logo-text i{font-style:normal;font-weight:700;letter-spacing:.2em;font-size:.62em;color:var(--violet-hi);transform:translateY(-.05em)}
.logo--light{color:#0b0b11}.logo--light .logo-text i{color:var(--violet-lo)}
.primary-nav{display:flex;align-items:center;gap:var(--s2);margin-left:auto}
.nav-list{display:flex;align-items:center;gap:.15rem}
.nav-link{position:relative;display:inline-flex;align-items:center;gap:.45rem;padding:.7rem .95rem;font-size:var(--fs-sm);font-weight:500;color:var(--text-soft);border-radius:var(--r);transition:color var(--t-fast)}
.nav-link:hover,.nav-link:focus-visible,.nav-link[aria-expanded="true"],.nav-link[aria-current="page"]{color:#fff}
.nav-link .chev{width:10px;height:10px;transition:transform var(--t-med) var(--ease)}
.nav-link[aria-expanded="true"] .chev{transform:rotate(180deg)}
.nav-indicator{position:absolute;bottom:2px;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--violet),var(--cyan));border-radius:2px;opacity:0;transform:translateX(0);transition:transform .45s var(--ease),width .45s var(--ease),opacity .25s;pointer-events:none}
.nav-indicator.is-on{opacity:1}
.nav-link[aria-current="page"]::after{content:"";position:absolute;left:.95rem;right:.95rem;bottom:2px;height:2px;background:linear-gradient(90deg,var(--violet),var(--cyan));border-radius:2px}
.js .nav-link[aria-current="page"]::after{display:none}
.header-actions{display:flex;align-items:center;gap:var(--s4);margin-left:var(--s4)}
.header-contact{font-size:var(--fs-sm);font-weight:500;color:var(--text-soft);padding:.5rem .25rem;position:relative;transition:color var(--t-fast)}
.header-contact::after{content:"";position:absolute;left:0;right:0;bottom:.25rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--t-med) var(--ease)}
.header-contact:hover{color:#fff}.header-contact:hover::after{transform:scaleX(1)}
.menu-toggle{display:none;width:46px;height:46px;position:relative;border:1px solid var(--line-strong);border-radius:var(--r);align-items:center;justify-content:center;transition:border-color var(--t-fast),background var(--t-fast)}
.menu-toggle:hover{border-color:var(--violet-hi);background:rgba(139,92,246,.1)}
.menu-toggle span{position:absolute;left:13px;right:13px;height:2px;background:#fff;border-radius:2px;transition:transform .45s var(--ease),opacity .2s,top .45s var(--ease)}
.menu-toggle span:nth-child(1){top:16px}.menu-toggle span:nth-child(2){top:22px;right:19px}.menu-toggle span:nth-child(3){top:28px}
.menu-toggle[aria-expanded="true"] span:nth-child(1){top:22px;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){top:22px;transform:rotate(-45deg)}

/* ---------- 6. MEGA MENU ---------- */
.has-mega{position:static}
.mega{position:absolute;left:0;right:0;top:100%;padding-top:0;visibility:hidden;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .3s var(--ease),transform .4s var(--ease),visibility 0s .4s}
.mega.is-open{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition:opacity .3s var(--ease),transform .4s var(--ease),visibility 0s}
.mega-panel{position:relative;max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:300px repeat(5,minmax(0,1fr));background:rgba(10,10,16,.97);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-top:0;box-shadow:0 40px 80px -30px rgba(0,0,0,.9),0 0 0 1px rgba(139,92,246,.08);overflow:hidden}
.mega-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--violet),var(--cyan),transparent);opacity:.7}
.mega-feature{position:relative;padding:var(--s6);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:var(--s5);background:radial-gradient(120% 80% at 0% 0%,rgba(139,92,246,.22),transparent 60%),var(--bg-2);overflow:hidden}
.mega-feature p{font-size:var(--fs-sm);color:var(--text-soft);line-height:1.55}
.mega-feature .mega-title{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.12;margin-bottom:var(--s3)}
.mega-feature .mega-art{position:absolute;right:-30px;bottom:-30px;width:210px;opacity:.5;pointer-events:none}
.mega-col{padding:var(--s6) var(--s5);border-right:1px solid var(--line)}
.mega-col:last-child{border-right:0}
.mega-col h3{font-family:var(--font-mono);font-weight:500;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--violet-hi);margin-bottom:var(--s4);display:flex;align-items:center;gap:.5rem}
.mega-col h3 span{color:var(--muted)}
.mega-col a{display:block;position:relative;padding:.4rem 0 .4rem 0;font-size:.86rem;line-height:1.35;color:var(--text-soft);transition:color var(--t-fast),transform var(--t-med) var(--ease),padding var(--t-med) var(--ease)}
.mega-col a::before{content:"";position:absolute;left:0;top:50%;width:0;height:1px;background:var(--cyan);transition:width var(--t-med) var(--ease)}
.mega-col a:hover,.mega-col a:focus-visible{color:#fff;padding-left:1.1rem}
.mega-col a:hover::before,.mega-col a:focus-visible::before{width:.7rem}
.mega-backdrop{position:fixed;inset:var(--header-h) 0 0 0;background:rgba(3,3,6,.55);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,visibility 0s .3s;z-index:450}
.mega-backdrop.is-on{opacity:1;visibility:visible;transition:opacity .3s}

/* ---------- 7. MOBILE DRAWER ---------- */
.drawer{position:fixed;inset:0;z-index:600;visibility:hidden;pointer-events:none}
.drawer.is-open{visibility:visible;pointer-events:auto}
.drawer-scrim{position:absolute;inset:0;background:rgba(3,3,6,.7);opacity:0;transition:opacity .4s var(--ease);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.drawer.is-open .drawer-scrim{opacity:1}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(440px,100%);background:linear-gradient(180deg,#0d0d14,#08080c);border-left:1px solid var(--line);transform:translateX(100%);transition:transform .55s var(--ease);display:flex;flex-direction:column;overflow:hidden}
.drawer.is-open .drawer-panel{transform:none}
.drawer-top{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);padding-inline:var(--gutter);border-bottom:1px solid var(--line);flex-shrink:0}
.drawer-close{width:46px;height:46px;border:1px solid var(--line-strong);border-radius:var(--r);display:grid;place-items:center}
.drawer-close svg{width:18px;height:18px}
.drawer-body{flex:1;overflow-y:auto;padding:var(--s5) var(--gutter) var(--s7);overscroll-behavior:contain}
.drawer-link,.drawer-acc-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1.05rem 0;font-family:var(--font-display);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text);border-bottom:1px solid var(--line);text-align:left}
.drawer-link[aria-current="page"]{color:var(--violet-hi)}
.drawer-acc-btn .chev{width:14px;height:14px;transition:transform var(--t-med) var(--ease)}
.drawer-acc-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.drawer-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.drawer-acc-panel.is-open{grid-template-rows:1fr}
.drawer-acc-panel>div{overflow:hidden}
.drawer-cat{padding:var(--s4) 0 var(--s3)}
.drawer-cat h3{font-family:var(--font-mono);font-weight:500;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--violet-hi);margin:var(--s3) 0 var(--s2)}
.drawer-cat a{display:block;padding:.5rem 0 .5rem .1rem;font-size:.98rem;color:var(--text-soft);border-left:1px solid var(--line);padding-left:var(--s4);transition:color var(--t-fast),border-color var(--t-fast)}
.drawer-cat a:hover{color:#fff;border-color:var(--cyan)}
.drawer-foot{padding:var(--s5) var(--gutter) calc(var(--s5) + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:grid;gap:var(--s4);flex-shrink:0;background:#08080c}
.drawer-foot .btn{width:100%}
.drawer-mail{font-size:var(--fs-sm);color:var(--muted);text-align:center}
.drawer-mail a{color:var(--text)}
body.no-scroll{overflow:hidden}

/* ---------- 8. FOOTER ---------- */
.site-footer{position:relative;overflow:hidden;background:var(--bg-2);border-top:1px solid var(--line)}
.footer-cta{position:relative;padding-block:clamp(4rem,3rem + 6vw,8rem);border-bottom:1px solid var(--line);overflow:hidden}
.footer-cta .glow-orb.a{width:520px;height:520px;left:-120px;top:-200px;background:var(--violet)}
.footer-cta .glow-orb.b{width:380px;height:380px;right:-60px;bottom:-200px;background:var(--cyan);opacity:.18}
.footer-cta-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s8);align-items:end}
.footer-cta h2{font-size:clamp(2.2rem,1.2rem + 4.6vw,5rem);max-width:15ch}
.footer-cta p{margin-bottom:var(--s5);max-width:42ch}
.footer-main{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,2.6fr) minmax(0,.9fr);gap:var(--s8);padding-block:var(--s9) var(--s8)}
.footer-brand p{margin-top:var(--s5);max-width:34ch;font-size:var(--fs-sm);color:var(--muted)}
.footer-contact{margin-top:var(--s6);display:grid;gap:.6rem;font-size:var(--fs-sm)}
.footer-contact a{color:var(--text);display:inline-flex;gap:.6rem;align-items:center;width:fit-content;border-bottom:1px solid transparent;transition:border-color var(--t-fast),color var(--t-fast)}
.footer-contact a:hover{color:var(--violet-hi);border-color:var(--violet-hi)}
.footer-contact [hidden]{display:none}
.footer-social{display:flex;gap:.6rem;margin-top:var(--s5);flex-wrap:wrap}
.footer-social a{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:var(--r);color:var(--text-soft);transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast),transform var(--t-med) var(--ease)}
.footer-social a:hover{color:#fff;border-color:var(--violet);background:rgba(139,92,246,.15);transform:translateY(-3px)}
.footer-social svg{width:18px;height:18px}
.footer-social [hidden]{display:none}
.footer-title{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s4);padding-bottom:var(--s3);border-bottom:1px solid var(--line)}
.footer-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6) var(--s5)}
.footer-group h3{font-family:var(--font-display);font-size:.98rem;font-weight:700;letter-spacing:-.01em;color:#fff;margin-bottom:var(--s3);line-height:1.2}
.footer-group a,.footer-company a{display:block;padding:.28rem 0;font-size:.88rem;color:var(--text-soft);position:relative;width:fit-content;transition:color var(--t-fast),transform var(--t-med) var(--ease)}
.footer-group a:hover,.footer-company a:hover{color:#fff;transform:translateX(5px)}
.footer-bottom{position:relative;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s4);padding-block:var(--s5);border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--muted)}
.footer-legal{display:flex;gap:var(--s5);flex-wrap:wrap}
.footer-legal a{transition:color var(--t-fast)}.footer-legal a:hover{color:#fff}
.footer-wordmark{position:relative;padding-top:var(--s5);line-height:.8;user-select:none;overflow:hidden;height:clamp(5rem,13.4vw,13.5rem)}
.footer-wordmark span{display:block;font-family:var(--font-display);font-weight:800;letter-spacing:-.06em;font-size:clamp(4rem,17.2vw,17.4rem);line-height:.82;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.16);background:linear-gradient(180deg,rgba(167,139,250,.5),rgba(139,92,246,0) 78%);-webkit-background-clip:text;background-clip:text;text-align:center;margin-inline:-.04em}
.footer-grid-bg{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:calc(100%/12) 100%;opacity:.35;mask-image:linear-gradient(180deg,transparent,#000 40%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 40%,transparent)}

/* ---------- 9. HERO ---------- */
.hero{position:relative;min-height:max(100svh,720px);display:flex;align-items:center;overflow:hidden;padding-top:calc(var(--header-h) + 3rem);padding-bottom:7.5rem;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-3;background:radial-gradient(90% 70% at 70% 30%,#1a0f3a 0%,#0a0814 55%,#07070b 100%)}
.hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s var(--ease)}
.hero-video.is-ready{opacity:.92}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(7,7,11,.92) 0%,rgba(7,7,11,.62) 42%,rgba(7,7,11,.1) 80%),linear-gradient(180deg,rgba(7,7,11,.55) 0%,transparent 28%,transparent 70%,var(--bg) 100%)}
.hero .grid-bg{z-index:-1;opacity:.4}
.hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:var(--s8);align-items:end}
.hero-brand{display:flex;align-items:center;gap:.9rem;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--text-soft);margin-bottom:var(--s6)}
.hero-brand b{font-family:var(--font-display);letter-spacing:.2em;color:#fff;font-weight:800;font-size:.92rem}
.hero-brand::after{content:"";height:1px;width:64px;background:linear-gradient(90deg,var(--violet),transparent)}
.hero h1{font-size:var(--fs-hero);line-height:.98;letter-spacing:-.045em;max-width:13ch}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .w{display:inline-block}
.hero-sub{margin-top:var(--s6);max-width:54ch;font-size:clamp(1.02rem,.95rem + .45vw,1.28rem);color:var(--text-soft)}
.hero .btn-row{margin-top:var(--s7)}
.hero-hud{display:grid;gap:var(--s3);justify-self:end;width:min(100%,340px);padding:var(--s5);border:1px solid var(--line-strong);background:linear-gradient(160deg,rgba(18,18,28,.82),rgba(10,10,16,.6));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);position:relative}
.hero-hud::before{content:"";position:absolute;left:-1px;top:-1px;width:44px;height:44px;border-left:2px solid var(--cyan);border-top:2px solid var(--cyan);border-radius:var(--r-lg) 0 0 0;opacity:.8}
.hud-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hud-val{font-family:var(--font-display);font-size:2.4rem;font-weight:800;letter-spacing:-.04em;color:#fff;line-height:1}
.hud-val small{font-size:.9rem;color:var(--cyan);font-weight:700;margin-left:.4rem;letter-spacing:0}
.hero-hud svg{width:100%;height:64px;overflow:visible}
.hero-hud .path{stroke-dasharray:420;stroke-dashoffset:420}
.is-ready .hero-hud .path{animation:draw 2.4s .9s var(--ease) forwards}
.scroll-cue{position:absolute;left:var(--gutter);bottom:5.6rem;display:flex;align-items:center;gap:.8rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.scroll-cue i{display:block;width:1px;height:46px;background:linear-gradient(var(--violet-hi),transparent);transform-origin:top;animation:cue 2.4s var(--ease-io) infinite}
.ticker{position:absolute;left:0;right:0;bottom:0;border-top:1px solid var(--line);background:rgba(7,7,11,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;height:3.4rem;display:flex;align-items:center}
.ticker-track{display:flex;gap:3rem;white-space:nowrap;animation:marquee 46s linear infinite;padding-left:3rem;will-change:transform}
.ticker-track span{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:inline-flex;gap:3rem;align-items:center}
.ticker-track span::after{content:"";width:5px;height:5px;background:var(--violet);transform:rotate(45deg)}
.hero-curve{position:absolute;left:0;right:0;bottom:-1px;height:90px;z-index:-1;pointer-events:none}

/* page hero (inner pages) */
.page-hero{position:relative;padding-top:calc(var(--header-h) + clamp(3rem,2rem + 4vw,6rem));padding-bottom:clamp(3.5rem,2rem + 5vw,7rem);overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line)}
.page-hero-bg{position:absolute;inset:0;z-index:-2;background:radial-gradient(80% 90% at 85% 10%,rgba(109,61,240,.28),transparent 60%),radial-gradient(50% 60% at 10% 100%,rgba(34,211,238,.1),transparent 60%),var(--bg)}
.page-hero .grid-bg{z-index:-1;opacity:.5}
.page-hero-inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--s8);align-items:center}
.page-hero h1{font-size:clamp(2.4rem,1.2rem + 4.8vw,5.4rem);letter-spacing:-.04em;line-height:1}
.page-hero .lead{margin-top:var(--s5)}
.page-hero .btn-row{margin-top:var(--s6)}
.page-hero-art{position:relative;aspect-ratio:1/1;max-height:520px;margin-left:auto;width:100%}
.page-hero-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 30px 60px rgba(109,61,240,.3))}
.page-hero--center .page-hero-inner{grid-template-columns:1fr;text-align:left}
.breadcrumbs{margin-bottom:var(--s6);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.breadcrumbs li+li::before{content:"/";margin-right:.5rem;color:var(--line-strong)}
.breadcrumbs a{transition:color var(--t-fast)}.breadcrumbs a:hover{color:#fff}
.breadcrumbs [aria-current]{color:var(--text-soft)}

/* ---------- 10. HOMEPAGE & CONTENT SECTIONS ---------- */
/* intro */
.intro-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s9);align-items:start}
.intro-statement{font-family:var(--font-display);font-weight:700;font-size:clamp(1.7rem,1.1rem + 2.4vw,3.2rem);line-height:1.12;letter-spacing:-.03em;color:var(--text)}
.intro-statement em{font-style:normal;color:var(--muted)}
.intro-statement .hl{background:linear-gradient(95deg,var(--violet-hi),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.pillars{display:grid;gap:0;border-top:1px solid var(--line)}
.pillar{display:grid;grid-template-columns:auto 1fr;gap:var(--s5);padding:var(--s5) 0;border-bottom:1px solid var(--line);transition:padding var(--t-med) var(--ease),background var(--t-med)}
.pillar:hover{padding-left:var(--s4);background:linear-gradient(90deg,rgba(139,92,246,.08),transparent)}
.pillar .n{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--cyan);padding-top:.3rem}
.pillar h3{font-size:1.25rem;margin-bottom:.35rem}
.pillar p{font-size:var(--fs-sm);color:var(--muted)}

/* services index (home) */
.svc-index{border-top:1px solid var(--line)}
.svc-cat{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,2.1fr);gap:var(--s7);padding:var(--s6) 0;border-bottom:1px solid var(--line);position:relative}
.svc-cat::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:linear-gradient(90deg,var(--violet),var(--cyan));transition:width 1.1s var(--ease)}
.svc-cat.is-in::before{width:100%}
.svc-cat-head .num{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--cyan);letter-spacing:.12em}
.svc-cat-head h3{margin:.55rem 0 .6rem;font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem)}
.svc-cat-head p{font-size:var(--fs-sm);color:var(--muted);max-width:34ch}
.svc-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s6);align-content:start}
.svc-links a{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:.95rem 0;border-bottom:1px solid var(--line);font-weight:500;color:var(--text);font-size:1.02rem;transition:color var(--t-fast),padding var(--t-med) var(--ease)}
.svc-links a:nth-last-child(-n+2){border-bottom:0}
.svc-links a svg{width:16px;height:16px;color:var(--muted);transition:transform var(--t-med) var(--ease),color var(--t-fast);flex-shrink:0}
.svc-links a:hover{color:var(--violet-hi);padding-left:.6rem}
.svc-links a:hover svg{color:var(--cyan);transform:translate(4px,-4px)}

/* dashboard */
.dash-wrap{position:relative;border:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--bg-2));border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1)}
.dash-wrap::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--violet),var(--cyan),transparent)}
.dash-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;padding:var(--s4) var(--s5);border-bottom:1px solid var(--line);background:rgba(255,255,255,.015)}
.dash-dots{display:flex;gap:.4rem}.dash-dots i{width:9px;height:9px;border-radius:50%;background:var(--line-strong)}
.dash-title{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.dash-body{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:520px}
.dash-tabs{display:flex;flex-direction:column;border-right:1px solid var(--line);padding:var(--s3)}
.dash-tab{display:flex;align-items:center;gap:.8rem;text-align:left;padding:.85rem var(--s4);font-size:var(--fs-sm);font-weight:500;color:var(--muted);border-radius:var(--r);border-left:2px solid transparent;transition:color var(--t-fast),background var(--t-fast),border-color var(--t-fast)}
.dash-tab span.i{font-family:var(--font-mono);font-size:.7rem;color:var(--line-strong)}
.dash-tab:hover{color:#fff;background:rgba(255,255,255,.03)}
.dash-tab[aria-selected="true"]{color:#fff;background:rgba(139,92,246,.12);border-left-color:var(--violet)}
.dash-tab[aria-selected="true"] span.i{color:var(--cyan)}
.dash-main{padding:var(--s6);display:grid;gap:var(--s5);align-content:start;min-width:0}
.dash-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s4);flex-wrap:wrap}
.dash-head h3{font-size:1.4rem}
.dash-head p{font-size:var(--fs-sm);color:var(--muted);margin-top:.25rem}
.chart-box{position:relative;width:100%;min-height:320px;min-width:0}
.chart-box svg{width:100%;height:auto;overflow:visible}
.chart-state{position:absolute;inset:0;display:grid;place-items:center;text-align:center;font-size:var(--fs-sm);color:var(--muted);padding:var(--s5)}
.chart-state .spin{width:22px;height:22px;border:2px solid var(--line-strong);border-top-color:var(--cyan);border-radius:50%;margin:0 auto .8rem;animation:spin .9s linear infinite}
.chart-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font-size:var(--fs-xs);color:var(--text-soft)}
.chart-legend span{display:inline-flex;align-items:center;gap:.5rem}
.chart-legend i{width:10px;height:10px;border-radius:2px;display:block}
.chart-tip{position:absolute;z-index:5;pointer-events:none;min-width:130px;max-width:220px;padding:.6rem .8rem;background:rgba(14,14,22,.97);border:1px solid var(--line-strong);border-radius:var(--r);font-size:.78rem;color:var(--text-soft);box-shadow:0 14px 30px -12px #000;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.chart-tip.is-on{opacity:1;transform:none}
.chart-tip b{display:block;color:#fff;font-weight:600;margin-bottom:.25rem}
.chart-tip div{display:flex;justify-content:space-between;gap:1rem}
.chart-tip div i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:.45rem}
.c-axis text{font-family:var(--font-body);font-size:11px;fill:var(--muted)}
.c-axis .c-title{fill:var(--text-soft);font-size:11px;letter-spacing:.04em}
.c-grid line{stroke:var(--line)}
.c-draw{stroke-dasharray:var(--len,2000);stroke-dashoffset:var(--len,2000)}
.is-drawn .c-draw{animation:draw 1.8s var(--ease) forwards}
.c-bar{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0)}
.is-drawn .c-bar{animation:grow .9s var(--ease) forwards;animation-delay:calc(var(--i,0) * 45ms)}
.c-fade{opacity:0}.is-drawn .c-fade{animation:fadein .8s .5s forwards}
.c-hit{fill:transparent;cursor:crosshair}
.c-dot{opacity:0;transition:opacity .15s}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.kpi{background:var(--surface);padding:var(--s5);display:grid;gap:.4rem;position:relative;transition:background var(--t-med)}
.kpi:hover{background:var(--surface-2)}
.kpi-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.kpi-val{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,1.4rem + 1.2vw,2.6rem);letter-spacing:-.04em;color:#fff;line-height:1}
.kpi-delta{font-size:var(--fs-xs);font-weight:600;color:var(--cyan)}
.kpi-delta.down{color:#f0abfc}
.kpi svg{width:100%;height:34px;margin-top:.3rem;overflow:visible}
.engage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.meter{display:grid;gap:.5rem;padding:var(--s4);border:1px solid var(--line);border-radius:var(--r);background:rgba(255,255,255,.015)}
.meter-top{display:flex;justify-content:space-between;font-size:var(--fs-sm)}
.meter-top b{color:#fff;font-family:var(--font-display);font-size:1.3rem;letter-spacing:-.03em}
.meter-bar{height:6px;background:var(--line);border-radius:6px;overflow:hidden}
.meter-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--violet),var(--cyan));border-radius:6px;transition:width 1.4s var(--ease)}
.is-drawn .meter-bar i{width:var(--w)}
.dash-foot{display:flex;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;align-items:center;padding:var(--s4) var(--s5);border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--muted)}

/* why */
.why-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s9);align-items:start}
.why-sticky{position:sticky;top:calc(var(--header-h) + 2rem)}
.why-list{display:grid;gap:0;counter-reset:why}
.why-item{display:grid;grid-template-columns:5rem 1fr;gap:var(--s5);padding:var(--s6) 0;border-top:1px solid var(--line);counter-increment:why;position:relative}
.why-item:last-child{border-bottom:1px solid var(--line)}
.why-item::before{content:counter(why,decimal-leading-zero);font-family:var(--font-display);font-weight:800;font-size:2.6rem;letter-spacing:-.05em;line-height:1;color:transparent;-webkit-text-stroke:1px var(--line-strong);transition:-webkit-text-stroke-color var(--t-med),color var(--t-med)}
.why-item:hover::before{-webkit-text-stroke-color:var(--violet-hi);color:rgba(139,92,246,.18)}
.why-item h3{margin-bottom:.5rem}
.why-item p{color:var(--muted);max-width:52ch}

/* process */
.proc{position:relative}
.proc-line{position:absolute;left:0;right:0;top:34px;height:2px;pointer-events:none}
.proc-line svg{width:100%;height:20px;overflow:visible}
.proc-steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5)}
.proc-step{position:relative;padding-top:5.5rem}
.proc-step .dot{position:absolute;left:0;top:18px;width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--violet);background:var(--bg);border-radius:50%;font-family:var(--font-mono);font-size:.72rem;color:#fff;box-shadow:0 0 0 6px rgba(139,92,246,.1)}
.proc-step h3{margin-bottom:.6rem}
.proc-step p{font-size:var(--fs-sm);color:var(--muted)}
.proc-step .tag{display:inline-block;margin-top:var(--s4);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan)}
.proc-detail{display:grid;gap:0;border-top:1px solid var(--line)}
.proc-row{display:grid;grid-template-columns:7rem minmax(0,1fr) minmax(0,1.2fr);gap:var(--s7);padding:var(--s8) 0;border-bottom:1px solid var(--line);align-items:start}
.proc-row .big{font-family:var(--font-display);font-size:clamp(3rem,2rem + 3vw,5.5rem);font-weight:800;letter-spacing:-.06em;line-height:.9;color:transparent;-webkit-text-stroke:1px var(--violet-hi)}
.proc-row ul{display:grid;gap:.7rem}
.proc-row li{position:relative;padding-left:1.6rem;color:var(--text-soft);font-size:var(--fs-sm)}
.proc-row li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:1px;background:var(--cyan)}

/* projects */
.proj-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s5)}
.proj{position:relative;display:block;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);text-align:left;width:100%;transition:border-color var(--t-med),transform var(--t-med) var(--ease)}
.proj:hover{border-color:rgba(139,92,246,.5);transform:translateY(-4px)}
.proj-img{aspect-ratio:16/10;overflow:hidden;background:var(--bg-2)}
.proj-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter var(--t-med)}
.proj:hover .proj-img img{transform:scale(1.06)}
.proj-meta{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s5)}
.proj-meta h3{font-size:1.2rem}
.proj-meta .cat{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.proj .badge{position:absolute;top:var(--s4);left:var(--s4);z-index:2;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(7,7,11,.78);border:1px solid var(--line-strong);padding:.3rem .55rem;border-radius:var(--r);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.proj .go{width:40px;height:40px;border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;flex-shrink:0;transition:background var(--t-med),border-color var(--t-med),transform var(--t-med) var(--ease)}
.proj .go svg{width:14px;height:14px}
.proj:hover .go{background:var(--violet);border-color:var(--violet);transform:rotate(-45deg)}
.proj.is-hidden{display:none}
.p-a{grid-column:span 7}.p-b{grid-column:span 5}.p-c{grid-column:span 5}.p-d{grid-column:span 7}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:var(--s7)}
.chip{padding:.6rem 1.1rem;border:1px solid var(--line-strong);border-radius:99px;font-size:var(--fs-sm);font-weight:500;color:var(--text-soft);transition:all var(--t-fast)}
.chip:hover{color:#fff;border-color:var(--violet-hi)}
.chip[aria-pressed="true"]{background:var(--violet);border-color:var(--violet);color:#fff}
.proj-grid.is-filter .proj{grid-column:span 4}
dialog.proj-dialog{width:min(920px,calc(100% - 2rem));max-height:calc(100svh - 2rem);padding:0;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-soft);border-radius:var(--r-lg);box-shadow:0 50px 120px -20px #000;overflow:auto}
dialog.proj-dialog::backdrop{background:rgba(3,3,6,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
dialog.proj-dialog[open]{animation:dialogin .5s var(--ease)}
.dlg-img{aspect-ratio:16/8;background:var(--bg-2)}.dlg-img img{width:100%;height:100%;object-fit:cover}
.dlg-body{padding:var(--s7);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s7)}
.dlg-body h2{font-size:clamp(1.8rem,1.4rem + 1.4vw,2.6rem);margin-bottom:var(--s4)}
.dlg-body h4{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--violet-hi);margin-bottom:var(--s3);font-weight:500}
.dlg-body ul{display:grid;gap:.5rem;font-size:var(--fs-sm)}
.dlg-body li{padding-left:1.2rem;position:relative}.dlg-body li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:1px;background:var(--cyan)}
.dlg-close{position:absolute;top:var(--s4);right:var(--s4);z-index:3;width:44px;height:44px;border-radius:50%;background:rgba(7,7,11,.8);border:1px solid var(--line-strong);display:grid;place-items:center}
.dlg-close svg{width:16px;height:16px}
.dlg-note{grid-column:1/-1;padding:var(--s4);border:1px dashed rgba(167,139,250,.5);border-radius:var(--r);font-size:var(--fs-sm);color:#e9d5ff;background:rgba(139,92,246,.08)}

/* industries + tech */
.ind-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.ind{position:relative;padding:var(--s6) var(--s5);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:190px;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s5);overflow:hidden;transition:background var(--t-med)}
.ind::after{content:"";position:absolute;inset:auto 0 0 0;height:2px;background:linear-gradient(90deg,var(--violet),var(--cyan));transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.ind:hover{background:rgba(139,92,246,.06)}.ind:hover::after{transform:scaleX(1)}
.ind svg{width:34px;height:34px;color:var(--violet-hi)}
.ind h3{font-size:1.15rem;margin-bottom:.3rem}.ind p{font-size:var(--fs-xs);color:var(--muted);line-height:1.5}
.tech-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s9);align-items:center}
.tech-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6) var(--s5)}
.tech-col h3{font-family:var(--font-mono);font-weight:500;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--violet-hi);margin-bottom:var(--s3);padding-bottom:var(--s3);border-bottom:1px solid var(--line)}
.tech-col li{padding:.32rem 0;font-size:var(--fs-sm);color:var(--text-soft);display:flex;gap:.7rem;align-items:center}
.tech-col li::before{content:"";width:5px;height:5px;background:var(--cyan);transform:rotate(45deg);flex-shrink:0}
.tech-note{margin-top:var(--s7);font-size:var(--fs-xs);color:var(--muted)}

/* accordion */
.acc{border-top:1px solid var(--line)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-btn{display:flex;width:100%;justify-content:space-between;align-items:center;gap:var(--s5);padding:var(--s5) 0;text-align:left;font-family:var(--font-display);font-weight:700;font-size:clamp(1.1rem,1rem + .5vw,1.4rem);letter-spacing:-.02em;color:var(--text);transition:color var(--t-fast)}
.acc-btn:hover{color:var(--violet-hi)}
.acc-ico{position:relative;width:34px;height:34px;flex-shrink:0;border:1px solid var(--line-strong);border-radius:50%;transition:background var(--t-med),border-color var(--t-med),transform .5s var(--ease)}
.acc-ico::before,.acc-ico::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:#fff;transform:translate(-50%,-50%);transition:transform .5s var(--ease)}
.acc-ico::after{transform:translate(-50%,-50%) rotate(90deg)}
.acc-btn[aria-expanded="true"] .acc-ico{background:var(--violet);border-color:var(--violet);transform:rotate(180deg)}
.acc-btn[aria-expanded="true"] .acc-ico::after{transform:translate(-50%,-50%) rotate(0)}
.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.acc-panel.is-open{grid-template-rows:1fr}
.acc-panel>div{overflow:hidden}
.acc-panel p{padding:0 var(--s8) var(--s6) 0;color:var(--text-soft);max-width:70ch}
.faq-split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s9);align-items:start}
.faq-groups{display:grid;gap:var(--s8)}
.faq-groups h2{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);margin-bottom:var(--s5)}

/* closing CTA */
.cta-band{position:relative;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--r-lg);padding:clamp(2.5rem,1.5rem + 5vw,6rem);background:radial-gradient(120% 140% at 100% 0%,rgba(139,92,246,.4),transparent 55%),radial-gradient(70% 90% at 0% 100%,rgba(34,211,238,.14),transparent 60%),var(--surface);isolation:isolate}
.cta-band .grid-bg{z-index:-1;opacity:.35}
.cta-band h2{font-size:clamp(2.1rem,1.2rem + 4vw,4.6rem);max-width:16ch;margin-bottom:var(--s5)}
.cta-band p{max-width:50ch;margin-bottom:var(--s6)}
.cta-band .cta-art{position:absolute;right:-40px;top:50%;transform:translateY(-50%);width:min(520px,52%);opacity:.9;z-index:-1;pointer-events:none}

/* ---------- 12. SERVICES ---------- */
.cat-block{margin-bottom:var(--s9)}
.cat-block:last-child{margin-bottom:0}
.cat-head{display:flex;align-items:end;justify-content:space-between;gap:var(--s6);flex-wrap:wrap;margin-bottom:var(--s6);padding-bottom:var(--s5);border-bottom:1px solid var(--line)}
.cat-head h2{font-size:clamp(1.8rem,1.3rem + 2vw,3rem)}
.cat-head p{max-width:44ch;font-size:var(--fs-sm);color:var(--muted)}
.svc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:var(--s4)}
.svc-card{--mx:50%;--my:50%;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s7);padding:var(--s6) var(--s5) var(--s5);min-height:260px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:transform var(--t-med) var(--ease),border-color var(--t-med),background var(--t-med)}
.svc-card::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx) var(--my),rgba(139,92,246,.2),transparent 70%);opacity:0;transition:opacity var(--t-med);pointer-events:none}
.svc-card:hover{transform:translateY(-6px);border-color:rgba(139,92,246,.55);background:var(--surface-2)}
.svc-card:hover::before{opacity:1}
.svc-card .ic{width:44px;height:44px;color:var(--violet-hi);transition:transform .6s var(--ease),color var(--t-med)}
.svc-card:hover .ic{transform:translateY(-3px) rotate(-6deg) scale(1.08);color:var(--cyan)}
.svc-card h3{font-size:1.25rem;margin-bottom:.5rem}
.svc-card p{font-size:var(--fs-sm);color:var(--muted);line-height:1.55}
.svc-card .more{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-sm);font-weight:600;color:var(--text);margin-top:var(--s4)}
.svc-card .more svg{width:14px;height:14px;transition:transform var(--t-med) var(--ease)}
.svc-card:hover .more svg{transform:translateX(5px)}
/* service detail */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s9);align-items:start}
.split--rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.list-rows{display:grid;border-top:1px solid var(--line)}
.list-rows li{display:grid;grid-template-columns:3rem 1fr;gap:var(--s4);padding:var(--s5) 0;border-bottom:1px solid var(--line);transition:padding var(--t-med) var(--ease),background var(--t-med)}
.list-rows li:hover{padding-left:var(--s3);background:linear-gradient(90deg,rgba(139,92,246,.07),transparent)}
.list-rows .n{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--cyan);padding-top:.35rem}
.list-rows h3{font-size:1.15rem;margin-bottom:.3rem}
.list-rows p{font-size:var(--fs-sm);color:var(--muted)}
.check-list{display:grid;gap:0;border-top:1px solid var(--line)}
.check-list li{display:flex;gap:var(--s4);align-items:flex-start;padding:var(--s4) 0;border-bottom:1px solid var(--line);color:var(--text-soft)}
.check-list li svg{width:18px;height:18px;color:var(--cyan);flex-shrink:0;margin-top:.25rem}
.check-list b{display:block;color:#fff;font-weight:600;margin-bottom:.15rem}
.check-list span{font-size:var(--fs-sm);color:var(--muted);display:block}
.step-track{position:relative;display:grid;gap:0;margin-left:1.1rem;border-left:1px solid var(--line-strong)}
.step-track li{position:relative;padding:0 0 var(--s7) var(--s7)}
.step-track li:last-child{padding-bottom:0}
.step-track li::before{content:attr(data-n);position:absolute;left:-1.1rem;top:-.1rem;width:34px;height:34px;display:grid;place-items:center;background:var(--bg);border:1px solid var(--violet);border-radius:50%;font-family:var(--font-mono);font-size:.72rem;color:#fff}
.step-track h3{margin-bottom:.4rem}.step-track p{font-size:var(--fs-sm);color:var(--muted);max-width:56ch}
.related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.related a{position:relative;display:flex;flex-direction:column;gap:var(--s6);justify-content:space-between;padding:var(--s6);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);min-height:190px;transition:border-color var(--t-med),transform var(--t-med) var(--ease),background var(--t-med)}
.related a:hover{border-color:rgba(139,92,246,.5);transform:translateY(-4px);background:var(--surface-2)}
.related .k{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.related h3{font-size:1.2rem;margin-top:.4rem}
.related svg{width:18px;height:18px;color:var(--cyan);transition:transform var(--t-med) var(--ease)}
.related a:hover svg{transform:translate(4px,-4px)}
.stat-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.stat-strip div{background:var(--surface);padding:var(--s5)}
.stat-strip b{display:block;font-family:var(--font-display);font-size:1.7rem;color:#fff;letter-spacing:-.03em;line-height:1.1}
.stat-strip span{font-size:var(--fs-xs);color:var(--muted)}
.principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.principle{padding:var(--s6);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background var(--t-med)}
.principle:hover{background:rgba(139,92,246,.06)}
.principle .n{font-family:var(--font-mono);color:var(--cyan);font-size:var(--fs-xs)}
.principle h3{margin:var(--s4) 0 var(--s3)}.principle p{font-size:var(--fs-sm);color:var(--muted)}

/* ---------- 14. CONTACT ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s9);align-items:start}
.contact-aside{position:sticky;top:calc(var(--header-h) + 2rem);display:grid;gap:var(--s6)}
.contact-card{padding:var(--s5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.contact-card h3{font-size:1.1rem;margin-bottom:.5rem}
.contact-card a{color:var(--violet-hi);border-bottom:1px solid transparent;transition:border-color var(--t-fast)}
.contact-card a:hover{border-color:var(--violet-hi)}
.contact-card p{font-size:var(--fs-sm);color:var(--muted)}
.contact-card ol{display:grid;gap:.8rem;margin-top:var(--s3);counter-reset:cc}
.contact-card ol li{counter-increment:cc;display:flex;gap:.9rem;font-size:var(--fs-sm);color:var(--text-soft)}
.contact-card ol li::before{content:counter(cc);width:24px;height:24px;display:grid;place-items:center;flex-shrink:0;border:1px solid var(--violet);border-radius:50%;font-family:var(--font-mono);font-size:.68rem;color:#fff}
.form{display:grid;gap:var(--s5);padding:clamp(1.5rem,1rem + 2vw,3rem);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--surface),var(--bg-2));position:relative}
.form::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--violet),var(--cyan),transparent)}
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.field{display:grid;gap:.5rem;position:relative}
.field label{font-size:var(--fs-sm);font-weight:600;color:var(--text)}
.field label .opt{font-weight:400;color:var(--muted);margin-left:.4rem;font-size:var(--fs-xs)}
.field label .req{color:var(--cyan);margin-left:.2rem}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:var(--fs-md);color:var(--text);background:rgba(255,255,255,.03);border:1px solid var(--line-strong);border-radius:var(--r);padding:.9rem 1rem;transition:border-color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast)}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23a78bfa' stroke-width='2'/></svg>");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.field select option{background:#12121a;color:#fff}
.field textarea{min-height:170px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(167,139,250,.5)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--violet);background:rgba(139,92,246,.06);box-shadow:0 0 0 3px rgba(139,92,246,.2);outline:none}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#f472b6}
.field-error{font-size:var(--fs-xs);color:#f9a8d4;min-height:1.1em}
.field-hint{font-size:var(--fs-xs);color:var(--muted)}
.consent{display:flex;gap:.9rem;align-items:flex-start;font-size:var(--fs-sm);color:var(--text-soft)}
.consent input{appearance:none;-webkit-appearance:none;width:22px;height:22px;flex-shrink:0;margin-top:.1rem;border:1px solid var(--line-strong);border-radius:var(--r);background:rgba(255,255,255,.03);display:grid;place-items:center;cursor:pointer;transition:all var(--t-fast)}
.consent input:checked{background:var(--violet);border-color:var(--violet)}
.consent input:checked::after{content:"";width:10px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.consent a{color:var(--violet-hi);border-bottom:1px solid currentColor}
.hp-field{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{padding:var(--s4) var(--s5);border-radius:var(--r);font-size:var(--fs-sm);border:1px solid var(--line-strong);display:none}
.form-status.is-on{display:block;animation:fadein .4s}
.form-status.ok{border-color:rgba(34,211,238,.55);background:rgba(34,211,238,.08);color:#cffafe}
.form-status.err{border-color:rgba(244,114,182,.6);background:rgba(244,114,182,.08);color:#fbcfe8}
.form[aria-busy="true"] .btn{opacity:.7;pointer-events:none}
.form-note{font-size:var(--fs-xs);color:var(--muted)}

/* ---------- 15. PROSE / LEGAL / 404 ---------- */
.prose{max-width:76ch}
.prose h2{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);margin:var(--s8) 0 var(--s4)}
.prose h2:first-child{margin-top:0}
.prose h3{margin:var(--s6) 0 var(--s3)}
.prose p,.prose li{color:var(--text-soft);margin-bottom:var(--s4)}
.prose ul{margin:0 0 var(--s5) 0;display:grid;gap:.3rem}
.prose ul li{position:relative;padding-left:1.4rem;margin:0}
.prose ul li::before{content:"";position:absolute;left:0;top:.75em;width:8px;height:1px;background:var(--cyan)}
.prose a{color:var(--violet-hi);border-bottom:1px solid rgba(167,139,250,.4)}
.prose a:hover{border-color:var(--violet-hi)}
.notice{padding:var(--s5);border:1px dashed rgba(167,139,250,.5);border-radius:var(--r);background:rgba(139,92,246,.07);color:#e9d5ff;font-size:var(--fs-sm);margin-bottom:var(--s7)}
.e404{min-height:100svh;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden;padding:calc(var(--header-h) + 2rem) var(--gutter) 4rem}
.e404 .num{font-family:var(--font-display);font-weight:800;font-size:clamp(7rem,4rem + 22vw,20rem);letter-spacing:-.08em;line-height:.85;color:transparent;-webkit-text-stroke:1px rgba(167,139,250,.55);background:linear-gradient(180deg,rgba(139,92,246,.55),transparent 85%);-webkit-background-clip:text;background-clip:text}
.e404 h1{font-size:clamp(1.8rem,1.2rem + 2vw,3rem);margin:var(--s4) 0}
.e404 p{max-width:46ch;margin:0 auto var(--s6)}
.e404 .btn-row{justify-content:center}
.asset-slot{border:1px dashed var(--line-strong);padding:var(--s5);border-radius:var(--r);font-size:var(--fs-sm)}

/* ---------- 16. MOTION ---------- */
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes grow{to{transform:scaleY(1)}}
@keyframes fadein{to{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes cue{0%{transform:scaleY(0);opacity:1}60%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes dialogin{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes flow{to{stroke-dashoffset:-240}}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes pagein{from{opacity:0}to{opacity:1}}

.js .reveal{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--d,0) * 90ms)}
.js .reveal.is-in{opacity:1;transform:none}
.js .reveal--left{transform:translateX(-32px)}
.js .reveal--scale{transform:scale(.96)}
.js .hero h1 .w{transform:translateY(112%);transition:transform 1.15s var(--ease);transition-delay:calc(var(--i,0) * 70ms + .15s)}
.js .hero.is-ready h1 .w{transform:none}
.js .hero-in{opacity:0;transform:translateY(20px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:calc(.5s + var(--d,0) * 110ms)}
.js .hero.is-ready .hero-in{opacity:1;transform:none}
.js body.page-enter main,.js body.page-enter .site-footer{animation:pagein .6s var(--ease) both}
.js body.page-leave main,.js body.page-leave .site-footer{opacity:0;transition:opacity .22s ease-out}
.flow-line{stroke-dasharray:6 18;animation:flow 6s linear infinite}
.float{animation:floaty 7s ease-in-out infinite}
.svg-draw{stroke-dasharray:var(--len,1200);stroke-dashoffset:var(--len,1200);transition:stroke-dashoffset 2.2s var(--ease)}
.is-in .svg-draw,.svg-draw.is-in{stroke-dashoffset:0}
.parallax{will-change:transform}
.cursor-light{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,rgba(139,92,246,.12),transparent 65%);opacity:0;transition:opacity .6s;will-change:transform}
.cursor-light.is-on{opacity:1}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .js .reveal,.js .hero-in,.js .hero h1 .w{opacity:1!important;transform:none!important}
  .c-draw{stroke-dashoffset:0!important}.c-bar{transform:scaleY(1)!important}.c-fade{opacity:1!important}
  .svg-draw{stroke-dashoffset:0!important}
  .ticker-track{animation:none}
  .cursor-light{display:none}
}

/* ---------- 17. RESPONSIVE ---------- */
@media (max-width:1240px){
  .mega-panel{grid-template-columns:repeat(5,minmax(0,1fr))}
  .mega-feature{display:none}
  .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
  .footer-company-wrap{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1060px){
  .primary-nav,.header-actions .header-contact{display:none}
  .menu-toggle{display:inline-flex}
  .header-actions{margin-left:0}
  .hero-inner{grid-template-columns:1fr;gap:var(--s7)}
  .hero-hud{justify-self:start}
  .page-hero-inner{grid-template-columns:1fr}
  .page-hero-art{max-width:420px;margin:var(--s5) 0 0}
  .intro-grid,.why-grid,.tech-split,.split,.split--rev,.contact-grid,.faq-split{grid-template-columns:1fr;gap:var(--s7)}
  .why-sticky,.contact-aside{position:static}
  .section-head--split{grid-template-columns:1fr;gap:var(--s5)}
  .footer-cta-inner{grid-template-columns:1fr;gap:var(--s6)}
  .svc-cat{grid-template-columns:1fr;gap:var(--s5)}
  .dash-body{grid-template-columns:1fr}
  .dash-tabs{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:var(--s2);gap:.25rem;scrollbar-width:none}
  .dash-tabs::-webkit-scrollbar{display:none}
  .dash-tab{border-left:0;border-bottom:2px solid transparent;white-space:nowrap;flex-shrink:0}
  .dash-tab[aria-selected="true"]{border-bottom-color:var(--violet)}
  .proc-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s7) var(--s5)}
  .proc-line{display:none}
  .proc-step{padding-top:4rem}
  .proc-row{grid-template-columns:5rem 1fr;gap:var(--s5)}
  .proc-row>:nth-child(3){grid-column:2}
  .ind-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .principles,.related{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proj-grid>.proj,.proj-grid.is-filter .proj{grid-column:span 6}
  .dlg-body{grid-template-columns:1fr;padding:var(--s5)}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  :root{--header-h:68px}
  .header-actions .btn{display:none}
  .hero{padding-bottom:6.5rem}
  .scroll-cue{display:none}
  .hero .btn-row .btn{width:100%}
  .svc-links{grid-template-columns:1fr}
  .svc-links a:nth-last-child(2){border-bottom:1px solid var(--line)}
  .footer-services{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-main{grid-template-columns:1fr;gap:var(--s7);padding-block:var(--s8) var(--s6)}
  .footer-company-wrap{grid-template-columns:1fr 1fr}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .proc-steps{grid-template-columns:1fr}
  .proj-grid>.proj,.proj-grid.is-filter .proj{grid-column:1/-1}
  .ind-grid,.principles,.related,.tech-cols,.stat-strip,.engage-grid,.form-row{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dash-main{padding:var(--s4)}
  .why-item{grid-template-columns:3.4rem 1fr;gap:var(--s4)}
  .why-item::before{font-size:1.8rem}
  .proc-row{grid-template-columns:1fr}.proc-row>:nth-child(3){grid-column:auto}
  .acc-panel p{padding-right:0}
  .cta-band svg.cta-art{opacity:.25;width:90%}
  .btn-row .btn{flex:1 1 auto}
}
@media (max-width:420px){
  .footer-services{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr}
  .hero h1{font-size:clamp(2.3rem,11vw,3rem)}
}
@media print{.site-header,.site-footer,.drawer,.cursor-light,body::after{display:none!important}body{background:#fff;color:#111}}

/* ---------- chart extras ---------- */
.c-seg{stroke-dasharray:0 var(--circ,1000);transition:opacity .2s,stroke-width .25s var(--ease);cursor:pointer}
.is-drawn .c-seg{animation:donut 1.3s var(--ease) forwards;animation-delay:calc(var(--i,0) * 130ms)}
@keyframes donut{from{stroke-dasharray:0 var(--circ)}to{stroke-dasharray:var(--seg) var(--circ)}}
@media (prefers-reduced-motion:reduce){.c-seg{stroke-dasharray:var(--seg) var(--circ)}}
.chart-box:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:var(--r)}
.sr-table{position:static}
.dash-legend-row{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap}
.chart-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);background:linear-gradient(180deg,var(--surface),var(--bg-2));display:grid;gap:var(--s4)}
.chart-card h3{font-size:1.2rem}
.chart-card .sub{font-size:var(--fs-sm);color:var(--muted);margin-top:.2rem}


/* ---------- 18. ADDITIONS ---------- */
.no-js .acc-panel,.no-js .drawer-acc-panel{grid-template-rows:1fr}
.nav-indicator{bottom:auto;top:0}
.photo-frame{position:relative;margin:0;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.photo-frame img{width:100%;height:100%;object-fit:cover}
.photo-frame figcaption{position:absolute;left:0;right:0;bottom:0;padding:.7rem 1rem;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);background:linear-gradient(0deg,rgba(7,7,11,.9),transparent)}
.photo-banner{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);aspect-ratio:21/8;background:var(--surface)}
.photo-banner img{width:100%;height:100%;object-fit:cover}
.photo-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,11,.85),rgba(7,7,11,.1) 70%)}
.photo-banner .inner{position:absolute;z-index:2;left:var(--s7);bottom:var(--s7);max-width:34rem}
.photo-banner h2{font-size:clamp(1.6rem,1.1rem + 2vw,3rem)}
.photo-banner figcaption{position:absolute;right:var(--s5);bottom:var(--s4);z-index:2;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.consent-wrap{display:grid;gap:.4rem}
.hud-note{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.disclaimer{font-size:var(--fs-xs);color:var(--muted);max-width:70ch}
.section-note{margin-top:var(--s5)}
.svc-cat-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}
.fit-line{margin-top:var(--s5);padding-left:var(--s4);border-left:2px solid var(--violet);color:var(--text-soft);font-size:var(--fs-sm);max-width:56ch}
.noscript-note{padding:var(--s4) var(--s5);border:1px solid rgba(244,114,182,.6);background:rgba(244,114,182,.08);border-radius:var(--r);font-size:var(--fs-sm);color:#fbcfe8}
.noscript-note a{text-decoration:underline}
.proj-dialog .dlg-img img{aspect-ratio:16/8}
.contact-photo{aspect-ratio:16/9}
@media (max-width:720px){.photo-banner{aspect-ratio:4/5}.photo-banner .inner{left:var(--s5);right:var(--s5);bottom:var(--s6)}.photo-banner figcaption{display:none}}
.proj>.proj-img,.proj>.badge{display:block}
.proj .proj-title{display:block;font-family:var(--font-display);font-size:1.2rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--text)}
.proj .cat{display:block;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.proj>.proj-meta{display:flex}
.dlg-links a{color:var(--violet-hi);border-bottom:1px solid rgba(167,139,250,.4)}
.faq-groups{display:grid;gap:var(--s9);max-width:60rem;margin-inline:auto}
.grad-text,.intro-statement .hl{-webkit-box-decoration-break:clone;box-decoration-break:clone}
@media (max-height:940px){.scroll-cue{display:none}}
.proj{display:flex;flex-direction:column}
.proj-img{position:relative;flex:1 1 auto;aspect-ratio:auto;min-height:clamp(200px,22vw,330px)}
.proj-img img{position:absolute;inset:0}
.proj-meta{flex:0 0 auto}
.footer-wordmark{height:clamp(4.2rem,11.2vw,12rem)}
.footer-wordmark span{font-size:clamp(3rem,14.3vw,15rem)}
.form-row{align-items:start}
@media (max-width:720px){.hero-brand{flex-wrap:wrap;row-gap:.35rem;letter-spacing:.14em}.hero-brand::after{display:none}}
.dlg-body .dlg-h{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--violet-hi);margin-bottom:var(--s3);font-weight:500;line-height:1.3}

/* ---------- 19. v2: layout from client file ---------- */
.reveal-all .reveal,.reveal-all .hero-in,.reveal-all .hero h1 .w{opacity:1!important;transform:none!important}
.reveal-all .c-draw{stroke-dashoffset:0!important}.reveal-all .c-bar{transform:scaleY(1)!important}.reveal-all .c-fade{opacity:1!important}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 60% 40% at 85% 0%,rgba(155,77,255,.12),transparent 60%),radial-gradient(ellipse 50% 40% at 0% 60%,rgba(23,185,255,.07),transparent 60%)}
.lay{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.55fr);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:start}
.lay-head{position:sticky;top:calc(var(--header-h) + 2rem);display:grid;gap:var(--s5)}
.lay-head h2{font-size:clamp(1.9rem,1.3rem + 2.2vw,3.1rem)}
.lay-head p{color:var(--text-soft)}
.chips-row{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:var(--s6)}
.chips-row span{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .8rem;border:1px solid var(--line-strong);border-radius:99px;font-size:.76rem;color:var(--text-soft);background:rgba(10,19,34,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.chips-row svg{width:15px;height:15px;color:var(--cyan)}
.svc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.svc-tile{--c1:#6d3df0;--c2:#9b4dff;--mx:50%;--my:50%;position:relative;display:flex;flex-direction:column;gap:var(--s4);min-height:240px;padding:var(--s5);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,rgba(14,26,46,.9),rgba(7,13,26,.9));overflow:hidden;transition:transform var(--t-med) var(--ease),border-color var(--t-med)}
.svc-tile::before{content:"";position:absolute;inset:0;background:radial-gradient(240px circle at var(--mx) var(--my),rgba(155,77,255,.2),transparent 70%);opacity:0;transition:opacity var(--t-med);pointer-events:none}
.svc-tile:hover{transform:translateY(-6px);border-color:rgba(155,77,255,.55)}.svc-tile:hover::before{opacity:1}
.svc-tile .ico{width:46px;height:46px;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 10px 24px -10px var(--c2)}
.svc-tile .ico svg{width:23px;height:23px}
.svc-tile h3{font-size:1.02rem;line-height:1.25}
.svc-tile p{font-size:.84rem;color:var(--muted);line-height:1.5;flex:1}
.svc-tile .more{font-size:.8rem;font-weight:600;color:var(--text);display:inline-flex;gap:.45rem;align-items:center}
.svc-tile .more svg{width:13px;height:13px;transition:transform var(--t-med) var(--ease)}.svc-tile:hover .more svg{transform:translateX(4px)}
.svc-tile:nth-child(2){--c1:#0ea5c6;--c2:#19e1e9}.svc-tile:nth-child(3){--c1:#7c3aed;--c2:#c026d3}.svc-tile:nth-child(4){--c1:#db2777;--c2:#f472b6}
.svc-tile:nth-child(5){--c1:#2563eb;--c2:#17b9ff}.svc-tile:nth-child(6){--c1:#ea580c;--c2:#fb923c}.svc-tile:nth-child(7){--c1:#4f46e5;--c2:#818cf8}.svc-tile:nth-child(8){--c1:#0d9488;--c2:#2dd4bf}
.stats-band{border-block:1px solid var(--line);background:linear-gradient(90deg,rgba(155,77,255,.07),rgba(23,185,255,.05))}
.stats-row{display:grid;grid-template-columns:1.1fr repeat(4,minmax(0,1fr));gap:0;align-items:center}
.stats-row>*{padding:var(--s6) var(--s5);border-left:1px solid var(--line)}.stats-row>:first-child{border-left:0;padding-left:0}
.stats-row h2{font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem)}.stats-row .intro p{font-size:.85rem;color:var(--muted);margin-top:.4rem}
.stat{display:flex;gap:var(--s4);align-items:center}
.stat .ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:var(--cyan);border:1px solid var(--line-strong);background:rgba(23,185,255,.08)}.stat .ic svg{width:20px;height:20px}
.stat strong{display:block;font-family:var(--font-display);font-size:clamp(1.8rem,1.4rem + 1.2vw,2.6rem);letter-spacing:-.04em;color:#fff;line-height:1}
.stat span{font-size:.8rem;color:var(--muted)}
.proc-box{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,rgba(14,26,46,.7),rgba(7,13,26,.7));overflow:hidden}
.proc-box>li{position:relative;padding:var(--s6) var(--s5);border-left:1px solid var(--line);display:grid;gap:var(--s3);align-content:start}.proc-box>li:first-child{border-left:0}
.proc-box>li::after{content:"→";position:absolute;right:-.62rem;top:2.4rem;width:1.25rem;height:1.25rem;display:grid;place-items:center;font-size:.8rem;color:var(--cyan);background:var(--bg);border-radius:50%;z-index:2}.proc-box>li:last-child::after{display:none}
.proc-box .ic{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--cyan);border:1px solid rgba(25,225,233,.4);background:rgba(25,225,233,.07)}.proc-box .ic svg{width:20px;height:20px}
.proc-box h3{font-size:1rem}.proc-box p{font-size:.84rem;color:var(--muted)}
.media-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s4)}
.media-video{grid-column:span 7;grid-row:span 2;position:relative;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#000;min-height:360px}
.media-video video{width:100%;height:100%;object-fit:cover;min-height:360px}
.media-video .cap{position:absolute;left:0;right:0;bottom:0;padding:var(--s5);background:linear-gradient(0deg,rgba(5,8,18,.92),transparent);pointer-events:none}
.media-video .cap h3{font-size:1.3rem}.media-video .cap p{font-size:.8rem;color:var(--text-soft);max-width:44ch}
.media-card{grid-column:span 5;position:relative;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;min-height:170px;background:var(--surface)}
.media-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.media-card:hover img{transform:scale(1.05)}
.media-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,8,18,.88),rgba(5,8,18,.05) 65%)}
.media-card div{position:absolute;z-index:2;left:var(--s4);bottom:var(--s4)}.media-card b{display:block;color:#fff;font-family:var(--font-display);font-size:1rem}.media-card span{font-size:.76rem;color:var(--text-soft)}
.media-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}.media-row .media-card{grid-column:auto;min-height:200px}
.proj-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.proj-grid--4 .proj{grid-column:auto}.proj-grid--4 .proj-img{min-height:150px}.proj-grid--4 .proj-meta{padding:var(--s4)}.proj-grid--4 .proj-title{font-size:1rem}
.about-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--s7);align-items:stretch;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(180deg,rgba(14,26,46,.6),rgba(7,13,26,.6))}
.about-split .photo{position:relative;min-height:380px}.about-split .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.about-split .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,rgba(7,13,26,.9))}
.about-split .txt{padding:clamp(1.5rem,1rem + 2vw,3rem) clamp(1.5rem,1rem + 2vw,3rem) clamp(1.5rem,1rem + 2vw,3rem) 0;display:grid;gap:var(--s5);align-content:center}
.values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.value{display:flex;gap:var(--s3);align-items:flex-start}.value .ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:var(--cyan);border:1px solid var(--line-strong)}.value .ic svg{width:18px;height:18px}
.value b{display:block;color:#fff;font-size:.9rem}.value span{font-size:.8rem;color:var(--muted)}
.quote-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.quote-card{display:grid;gap:var(--s4);padding:var(--s5);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,rgba(14,26,46,.8),rgba(7,13,26,.8));align-content:start}
.quote-card .stars{display:flex;gap:2px;color:#fbbf24}.quote-card .stars svg{width:16px;height:16px;fill:currentColor}
.quote-card p{font-size:.92rem;color:var(--text-soft)}
.quote-card .who{display:flex;gap:.8rem;align-items:center;margin-top:auto}
.quote-card .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--violet),var(--blue,#17b9ff))}
.quote-card b{display:block;color:#fff;font-size:.88rem}.quote-card small{font-size:.76rem;color:var(--muted)}
.cta-wide{position:relative;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--r-lg);padding:clamp(2rem,1rem + 4vw,4rem);display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:var(--s6);align-items:center;background:radial-gradient(90% 140% at 100% 50%,rgba(155,77,255,.35),transparent 60%),radial-gradient(60% 100% at 0% 100%,rgba(23,185,255,.18),transparent 60%),var(--surface);isolation:isolate}
.cta-wide .cta-art{position:absolute;right:-60px;top:50%;transform:translateY(-50%);width:420px;opacity:.55;z-index:-1;pointer-events:none}
.cta-wide h2{font-size:clamp(1.8rem,1.2rem + 2.6vw,3.2rem);margin:.4rem 0 var(--s3)}
.btn--wa{background:#16a34a;border-color:#16a34a}.btn--wa:hover{box-shadow:0 0 0 1px rgba(34,197,94,.5),0 20px 50px -20px rgba(34,197,94,.6)}
.btn svg.pre{width:18px;height:18px}
.contact-list{display:grid;gap:var(--s4);margin-top:var(--s4)}
.contact-list a,.contact-list div{display:flex;gap:var(--s4);align-items:flex-start;color:var(--text-soft);font-size:.92rem}
.contact-list .ic{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:var(--cyan);border:1px solid var(--line-strong);background:rgba(23,185,255,.06)}.contact-list .ic svg{width:19px;height:19px}
.contact-list b{display:block;color:#fff;font-size:.92rem}.contact-list a:hover b{color:var(--violet-hi)}
.footer-line{display:flex;gap:.6rem;align-items:flex-start;padding:.28rem 0;font-size:.88rem;color:var(--text-soft)}
.footer-company a svg,.footer-line svg{width:16px;height:16px;color:var(--cyan);flex-shrink:0;margin-top:.2rem;display:inline-block;vertical-align:-.2em;margin-right:.1rem}
.footer-company-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6)}
.footer-main{grid-template-columns:minmax(0,1fr) minmax(0,2.3fr) minmax(0,1.5fr)}
@media (max-width:1240px){.footer-main{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}
@media (max-width:1060px){.lay{grid-template-columns:1fr}.lay-head{position:static}.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-row>*{border-left:0;border-top:1px solid var(--line);padding-left:0}.stats-row>:first-child{grid-column:1/-1;border-top:0}
 .proc-box{grid-template-columns:repeat(2,minmax(0,1fr))}.proc-box>li:nth-child(3){border-left:0}.proc-box>li:nth-child(n+3){border-top:1px solid var(--line)}.proc-box>li::after{display:none}
 .media-video{grid-column:1/-1;grid-row:auto}.media-card{grid-column:span 6}.proj-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}.about-split{grid-template-columns:1fr}.about-split .txt{padding:0 var(--s5) var(--s6)}.about-split .photo{min-height:260px}.about-split .photo::after{background:linear-gradient(180deg,transparent 60%,rgba(7,13,26,.9))}
 .quote-grid{grid-template-columns:1fr}.cta-wide{grid-template-columns:1fr}}
@media (max-width:560px){.svc-grid{grid-template-columns:1fr}.svc-tile{min-height:0}.values{grid-template-columns:1fr}.media-card{grid-column:1/-1}.media-row{grid-template-columns:1fr}.proj-grid--4{grid-template-columns:1fr}.proc-box{grid-template-columns:1fr}.proc-box>li{border-left:0;border-top:1px solid var(--line)}.proc-box>li:first-child{border-top:0}.footer-company-wrap{grid-template-columns:1fr}}
.hero h1{max-width:none;font-size:clamp(2.5rem,1rem + 5.4vw,5.9rem)}
.lay-head .eyebrow{margin-bottom:0}
.hero{padding-bottom:6.5rem}
.quote-card{margin:0}.media-video{margin:0}

/* footer contact column: keep icon and text on one line */
.footer-contact-col a{display:flex;align-items:flex-start;gap:10px;overflow-wrap:anywhere}
.footer-contact-col a svg{flex:none;margin-top:4px}

/* 20. v3: logo image, consent bar */
.logo img{display:block;height:40px;width:auto}
.footer .logo img,.site-footer .logo img{height:46px}
.consent-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:640px;margin-inline:auto;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;box-shadow:0 12px 40px rgba(0,0,0,.5);font-size:.86rem;color:var(--text-2,#b8c2d6)}
.consent-bar p{margin:0;flex:1 1 260px}.consent-bar a{color:var(--violet-hi);text-decoration:underline}
.consent-bar div{display:flex;gap:8px}
.consent-btn{min-height:40px;padding:0 16px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--text);font:inherit;cursor:pointer}
.consent-btn--ok{background:var(--violet);border-color:var(--violet);color:#fff}
.svc-video{margin:0 auto;max-width:960px;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#000}
.svc-video video{display:block;width:100%;height:auto;aspect-ratio:1280/856}
.svc-video figcaption{padding:10px 16px;font-size:.78rem;color:var(--text-soft);background:var(--surface)}
.section--tight{padding-block:clamp(24px,4vw,48px)}
.page-hero h1 .h1-kw{display:flex;align-items:center;gap:.7rem;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--violet-hi);margin-bottom:var(--s5);line-height:1.4}
.page-hero h1 .h1-kw::before{content:"";flex:none;width:28px;height:1px;background:linear-gradient(90deg,var(--violet),var(--cyan))}

/* 21. v3 spacing: tighter, still airy. Applies to --section-y consumers and inner-page heroes only (home hero has its own rules). */
:root{--section-y:clamp(3.25rem,2.2rem + 4.5vw,6rem)}
.section-head{margin-bottom:clamp(2rem,1.5rem + 2.5vw,3.5rem)}
.page-hero{padding-bottom:clamp(2.5rem,1.5rem + 3.5vw,5rem)}
.ov-text p{color:var(--text-soft);margin:0 0 1.1rem;max-width:62ch}.ov-text p:last-child{margin-bottom:0}
