/* ============ THEME TOKENS ============ */
:root{
  --f-body:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-head:Manrope,Inter,system-ui,sans-serif;
  --f-em:"Instrument Serif",Georgia,serif;
  --r:20px; --r-sm:12px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
[data-theme="dark"]{
  --bg:#0c0e11; --bg2:#111419;
  --surf:linear-gradient(180deg,#191c22 0%,#13161a 100%);
  --surf-solid:#15181d; --surf-hi:#1d2128;
  --line:rgba(255,255,255,.075); --line2:rgba(255,255,255,.15);
  --text:#e8eaee; --muted:#959ca6; --faint:#6b727c;
  --chrome:linear-gradient(100deg,#7d838c 0%,#f5f7f9 20%,#aeb4bc 38%,#6a7079 55%,#e8ebee 75%,#9aa0a8 100%);
  --chrome-soft:linear-gradient(135deg,#2a2e35,#1a1d22 45%,#2c3038);
  --btn-bg:linear-gradient(180deg,#f2f4f6 0%,#c3c8ce 50%,#e3e6ea 100%);
  --btn-fg:#0c0e11; --btn-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 10px 30px -10px rgba(200,210,225,.35);
  --accent:#9db3c9; --accent-bg:rgba(157,179,201,.1);
  --sheen:rgba(255,255,255,.07);
  --brush:rgba(255,255,255,.012);
  --shadow:0 30px 60px -30px rgba(0,0,0,.8);
}
[data-theme="light"]{
  --bg:#e8eaed; --bg2:#f1f2f4;
  --surf:linear-gradient(180deg,#fbfbfc 0%,#eff1f3 100%);
  --surf-solid:#f7f8f9; --surf-hi:#ffffff;
  --line:rgba(20,26,34,.09); --line2:rgba(20,26,34,.18);
  --text:#14171c; --muted:#58606a; --faint:#8a919a;
  --chrome:linear-gradient(100deg,#2b3037 0%,#8e959e 22%,#1f2329 42%,#6f767f 62%,#262a30 82%,#5d646d 100%);
  --chrome-soft:linear-gradient(135deg,#ffffff,#e4e7ea 45%,#f6f7f8);
  --btn-bg:linear-gradient(180deg,#3a4049 0%,#1a1d22 100%);
  --btn-fg:#f3f4f6; --btn-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 10px 26px -10px rgba(20,26,34,.45);
  --accent:#46627d; --accent-bg:rgba(70,98,125,.09);
  --sheen:rgba(255,255,255,.7);
  --brush:rgba(0,0,0,.012);
  --shadow:0 30px 60px -30px rgba(30,40,55,.35);
}
html[lang="hi"]{--f-body:"Noto Sans Devanagari",Inter,sans-serif;--f-head:"Noto Sans Devanagari",Manrope,sans-serif;--f-em:"Noto Sans Devanagari",sans-serif}
html[lang="kn"]{--f-body:"Noto Sans Kannada",Inter,sans-serif;--f-head:"Noto Sans Kannada",Manrope,sans-serif;--f-em:"Noto Sans Kannada",sans-serif}
html[lang="ur"]{--f-body:"Noto Nastaliq Urdu",serif;--f-head:"Noto Nastaliq Urdu",serif;--f-em:"Noto Nastaliq Urdu",serif}

/* ============ BASE ============ */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--f-body);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .4s,color .4s;
  background-image:repeating-linear-gradient(0deg,var(--brush) 0 1px,transparent 1px 3px),radial-gradient(80% 50% at 80% -10%,var(--sheen),transparent 60%);background-attachment:fixed}
html[lang="ur"] body{line-height:2.1}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:700;letter-spacing:-.025em;line-height:1.1}
html[lang="hi"] h1,html[lang="hi"] h2,html[lang="kn"] h1,html[lang="kn"] h2{letter-spacing:0;line-height:1.3}
html[lang="ur"] h1,html[lang="ur"] h2,html[lang="ur"] h3,html[lang="ur"] h4{letter-spacing:0;line-height:1.85;font-weight:700}
em{font-family:var(--f-em);font-style:italic;font-weight:400;background:var(--chrome);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;padding:0 .06em .08em;animation:shine 8s linear infinite}
html:not([lang="en"]) em{font-style:normal;font-weight:700}
@keyframes shine{to{background-position:-200% 0}}
a{color:inherit;text-decoration:none}
button{font-family:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
section{padding:110px 0;position:relative}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 12.5px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
html:not([lang="en"]) .eyebrow{letter-spacing:.02em;font-size:14px;text-transform:none;line-height:1.6}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor}
.sec-head{max-width:720px;margin-bottom:56px}
.sec-head.center{text-align:center;margin-inline:auto}
.sec-head.center .eyebrow{justify-content:center}
.sec-head h2{font-size:clamp(32px,4.4vw,52px);margin:16px 0 14px}
.sec-head p{color:var(--muted);font-size:17.5px}

/* ============ BUTTONS ============ */
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:99px;border:0;cursor:pointer;font:600 15px/1.2 var(--f-body);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s;white-space:nowrap}
.btn-metal{background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow)}
.btn-metal::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .7s var(--ease)}
.btn-metal:hover::after{left:130%}
.btn:hover{transform:translateY(-2px)}
.btn-line{background:transparent;color:var(--text);border:1px solid var(--line2)}
.btn-line:hover{background:var(--surf-hi)}
.arr{display:inline-block;transition:transform .3s}
.btn:hover .arr{transform:translateX(4px)}
[dir="rtl"] .arr{transform:scaleX(-1)}
[dir="rtl"] .btn:hover .arr{transform:scaleX(-1) translateX(4px)}
.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--surf-solid);display:grid;place-items:center;cursor:pointer;transition:.25s}
.icon-btn:hover{border-color:var(--line2);transform:rotate(-12deg)}
.icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}

/* ============ NAV ============ */
header{position:fixed;inset:12px 0 auto;z-index:100;padding:0 14px}
.nav{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:9px 10px 9px 20px;border-radius:99px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);transition:box-shadow .3s}
[dir="rtl"] .nav{padding:9px 20px 9px 10px}
header.scrolled .nav{box-shadow:var(--shadow)}
.logo{display:flex;align-items:center;gap:10px;font:800 19px/1 Manrope,sans-serif;letter-spacing:-.02em;flex:none}
.logo svg{width:30px;height:30px}
.logo small{font:500 11px/1 Inter;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-top:2px}
.menu{display:flex;list-style:none;gap:2px;margin-inline:auto}
.menu>li{position:relative}
.menu>li>a,.menu>li>button{display:block;padding:9px 13px;border-radius:99px;font-size:14.5px;font-weight:500;color:var(--muted);background:none;border:0;cursor:pointer;white-space:nowrap;transition:.2s}
.menu>li>a:hover,.menu>li>button:hover,.menu>li.open>button{color:var(--text);background:var(--surf-hi)}
.caret{display:inline-block;margin-inline-start:4px;font-size:9px;transition:transform .25s}
.has-mega:hover .caret,.has-mega.open .caret{transform:rotate(180deg)}
.mega{position:absolute;top:calc(100% + 14px);left:50%;width:min(940px,92vw);transform:translate(-40%,8px);opacity:0;visibility:hidden;transition:.25s var(--ease);background:var(--surf-solid);border:1px solid var(--line);border-radius:22px;padding:26px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px 26px;box-shadow:var(--shadow)}
[dir="rtl"] .mega{left:auto;right:50%;transform:translate(40%,8px)}
.has-mega:hover .mega,.has-mega.open .mega{opacity:1;visibility:visible;transform:translate(-40%,0)}
[dir="rtl"] .has-mega:hover .mega,[dir="rtl"] .has-mega.open .mega{transform:translate(40%,0)}
.mega::before{content:"";position:absolute;inset:-16px 0 auto;height:16px}
.mega h5{font:600 12px/1.4 var(--f-body);color:var(--accent);letter-spacing:.06em;margin-bottom:8px}
.mega a{display:block;padding:5px 0;font-size:14px;color:var(--muted);transition:.2s}
.mega a:hover{color:var(--text);padding-inline-start:4px}
.nav-tools{display:flex;align-items:center;gap:8px;flex:none}
.lang{position:relative}
.lang-btn{height:42px;padding:0 14px;border-radius:99px;border:1px solid var(--line);background:var(--surf-solid);display:flex;align-items:center;gap:8px;cursor:pointer;font:600 13.5px/1 var(--f-body);transition:.25s}
.lang-btn:hover{border-color:var(--line2)}
.lang-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7}
.lang-menu{position:absolute;top:calc(100% + 10px);inset-inline-end:0;min-width:170px;padding:6px;border-radius:16px;background:var(--surf-solid);border:1px solid var(--line);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s;list-style:none}
.lang.open .lang-menu{opacity:1;visibility:visible;transform:none}
.lang-menu button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:0;background:none;border-radius:10px;cursor:pointer;font-size:15px;text-align:start}
.lang-menu button:hover{background:var(--surf-hi)}
.lang-menu button small{color:var(--faint);font:500 11px Inter;letter-spacing:.08em}
.lang-menu button[aria-checked="true"]{background:var(--accent-bg);color:var(--accent)}
.lang-menu button span:first-child{font-family:"Noto Sans Devanagari","Noto Nastaliq Urdu","Noto Sans Kannada",Inter,sans-serif}
.theme-btn .sun{display:none}
[data-theme="light"] .theme-btn .sun{display:block}
[data-theme="light"] .theme-btn .moon{display:none}
.burger{display:none}
.nav-cta{padding:12px 20px;font-size:14px}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:99;background:var(--bg);padding:100px 24px 30px;display:flex;flex-direction:column;gap:6px;transform:translateY(-100%);visibility:hidden;transition:transform .45s var(--ease),visibility 0s .45s;overflow:auto}
.drawer.open{transform:none;visibility:visible;transition:transform .45s var(--ease)}
.drawer a{font:600 24px/1.5 var(--f-head);padding:10px 0;border-bottom:1px solid var(--line)}
.drawer .btn{margin-top:20px;justify-content:center}

/* ============ HERO ============ */
.hero{min-height:100vh;display:flex;align-items:center;padding:130px 0 70px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center}
.hero h1{font-size:clamp(44px,6.4vw,88px);margin:22px 0 24px}
html[lang="ur"] .hero h1{font-size:clamp(36px,4.8vw,64px)}
html[lang="kn"] .hero h1,html[lang="hi"] .hero h1{font-size:clamp(38px,5.4vw,72px)}
.hero .sub{font-size:19px;color:var(--muted);max-width:540px;margin-bottom:34px}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;border:1px solid var(--line);background:var(--surf-solid);font-size:13.5px;color:var(--muted)}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--chrome);box-shadow:0 0 0 3px var(--accent-bg)}
.stage{position:relative;aspect-ratio:1/1;max-height:640px;width:100%}
#hero3d{position:absolute;inset:-8%;width:116%;height:116%}
.stage .halo{position:absolute;inset:14%;border-radius:50%;background:radial-gradient(circle,var(--accent-bg),transparent 65%);filter:blur(20px)}
.stage .ring{position:absolute;inset:4%;border-radius:50%;border:1px solid var(--line);animation:rot 40s linear infinite}
.stage .ring::before{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:var(--chrome)}
.stage .ring.r2{inset:16%;animation-duration:28s;animation-direction:reverse;border-style:dashed}
@keyframes rot{to{transform:rotate(360deg)}}
.fallback-orb{position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0,#d7dbe0 12%,#8b929b 38%,#2c3036 70%,#9aa1a9 100%);box-shadow:inset -20px -30px 60px rgba(0,0,0,.4),var(--shadow);display:none;animation:bob 6s ease-in-out infinite}
.no3d .fallback-orb{display:block}
@keyframes bob{50%{transform:translateY(-14px)}}
.tagline{position:absolute;bottom:6%;inset-inline-start:0;font:400 15px/1.4 var(--f-em);font-style:italic;color:var(--muted);display:flex;align-items:center;gap:10px}
html:not([lang="en"]) .tagline{font-style:normal;font-family:var(--f-body)}
.tagline::before{content:"";width:30px;height:1px;background:var(--line2)}

/* ============ CARDS ============ */
.card{position:relative;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:30px;overflow:hidden;transition:border-color .3s,box-shadow .4s,transform .2s ease-out}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,var(--line2),transparent 40%,transparent 60%,var(--line2));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0;transition:opacity .4s}
.card:hover{box-shadow:var(--shadow)}
.card:hover::before{opacity:1}
.card .glare{position:absolute;inset:0;pointer-events:none;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),var(--sheen),transparent 45%);opacity:0;transition:opacity .3s}
.card:hover .glare{opacity:1}
.card h3{font-size:21px;margin-bottom:10px}
html[lang="ur"] .card h3{font-size:19px}
.card p{color:var(--muted);font-size:15.5px}
.tilt{transform-style:preserve-3d;will-change:transform}
.metal-ic{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;margin-bottom:22px;background:var(--chrome-soft);border:1px solid var(--line2);box-shadow:0 1px 0 var(--sheen) inset,0 8px 20px -10px rgba(0,0,0,.5)}
.metal-ic svg{width:24px;height:24px;stroke:var(--text);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.idx{position:absolute;top:26px;inset-inline-end:28px;font:600 13px Manrope;color:var(--faint)}

/* path cards */
.path-card{display:flex;flex-direction:column;min-height:300px}
.path-card p{flex:1;margin-bottom:24px}
.path-card .link{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;color:var(--text);background:none;border:0;cursor:pointer;padding:0;text-align:start}
.path-card .link .arr-c{width:38px;height:38px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;transition:.3s;flex:none}
.path-card:hover .link .arr-c{background:var(--btn-bg);color:var(--btn-fg);border-color:transparent}
[dir="rtl"] .path-card .arr-c{transform:scaleX(-1)}

/* services full list */
.all-svc{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.all-svc.open{grid-template-rows:1fr}
.all-svc>div{overflow:hidden}
.svc-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding:34px;margin-top:20px;border-radius:var(--r);border:1px solid var(--line);background:var(--surf)}
.svc-groups h5{font:600 13px/1.4 var(--f-body);color:var(--accent);margin-bottom:10px}
.svc-groups li{list-style:none;font-size:14.5px;color:var(--muted);padding:5px 0;display:flex;gap:8px}
.svc-groups li::before{content:"";flex:none;width:5px;height:5px;margin-top:.7em;border-radius:50%;background:var(--faint)}
.center-btn{text-align:center;margin-top:34px}

/* work */
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.work{padding:0}
.work .shot{height:330px;position:relative;overflow:hidden;background:var(--chrome-soft);border-bottom:1px solid var(--line);perspective:1000px}
.mock{position:absolute;inset:34px 40px -20px;border-radius:12px 12px 0 0;background:var(--surf-hi);border:1px solid var(--line);box-shadow:var(--shadow);transform:rotateX(10deg) translateY(10px);transition:transform .7s var(--ease);transform-origin:bottom}
.work:hover .mock{transform:rotateX(0) translateY(-6px)}
.mock .bar{display:flex;gap:5px;padding:10px 12px;border-bottom:1px solid var(--line)}
.mock .bar i{width:8px;height:8px;border-radius:50%;background:var(--line2)}
.mock .in{padding:18px;display:grid;gap:10px}
.ln{height:8px;border-radius:4px;background:var(--line2)}
.ln.dk{background:var(--text);opacity:.75;height:12px}
.row{display:grid;gap:10px}
.box{border-radius:8px;background:var(--bg2);border:1px solid var(--line);padding:10px;display:grid;gap:6px}
.pill{height:22px;width:110px;border-radius:99px;background:var(--btn-bg)}
.work .info{padding:26px 30px 30px}
.work .cat{font-size:13px;color:var(--accent);font-weight:600}
.work h3{font-size:26px;margin:6px 0 10px;font-family:Manrope,sans-serif}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.tags span{font-size:12.5px;padding:6px 12px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}
.clients{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap;margin-top:50px;padding-top:34px;border-top:1px solid var(--line)}
.clients small{color:var(--faint);font-size:13px}
.client{font:800 22px Manrope;letter-spacing:-.02em;background:var(--chrome);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 10s linear infinite}

/* ---- 3D project scenes ---- */
.work .shot{height:400px;perspective:1100px;direction:ltr;background:radial-gradient(70% 60% at 50% 30%,var(--sheen),transparent 70%),var(--chrome-soft)}
.work .shot::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 40px),repeating-linear-gradient(0deg,var(--line) 0 1px,transparent 1px 40px);-webkit-mask:radial-gradient(70% 70% at 50% 60%,#000,transparent);mask:radial-gradient(70% 70% at 50% 60%,#000,transparent);opacity:.6;pointer-events:none}
.scene{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(calc(16deg + var(--py,0)*-10deg)) rotateY(calc(-16deg + var(--px,0)*18deg));transition:transform .7s var(--ease)}
.work:hover .scene{transform:rotateX(calc(8deg + var(--py,0)*-10deg)) rotateY(calc(-6deg + var(--px,0)*18deg))}
.layer{position:absolute;transform:translateZ(var(--d));transform-style:preserve-3d;transition:transform .7s var(--ease)}
.work:hover .layer{transform:translateZ(calc(var(--d) * 1.5))}
.floor{position:absolute;left:12%;right:12%;bottom:4%;height:30px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.45),transparent);filter:blur(10px);transform:translateZ(-60px)}
.browser{left:7%;top:13%;width:68%;height:76%;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 30px 60px -20px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.08)}
.browser .bar{display:flex;align-items:center;gap:5px;padding:9px 12px;background:#eef0f3;border-bottom:1px solid #e1e4e8}
.browser .bar i{width:8px;height:8px;border-radius:50%;background:#cfd3d9}
.browser .url{margin-left:12px;flex:1;font:500 10px Inter;color:#7a818b;background:#fff;border-radius:6px;padding:3px 10px}
.site{padding:12px 16px;font-family:Inter,sans-serif;height:100%}
.s-nav{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.s-logo{display:inline-flex;align-items:center;gap:6px;font:800 12px Manrope,Inter;color:#14213d}
.s-logo .mk{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:8.5px;color:#fff;background:linear-gradient(135deg,#1d3557,#274c77)}
.s-links{display:flex;gap:6px;margin-left:auto}.s-links i{width:24px;height:5px;border-radius:3px;background:#d9dde3}
.s-cta{font:600 8.5px Inter;padding:5px 9px;border-radius:99px;color:#fff;background:#1d3557}
.s-kick{font:600 8px Inter;letter-spacing:.12em;text-transform:uppercase;color:#b08a3e;margin-bottom:6px}
.s-h{font:800 19px/1.1 Manrope,Inter;color:#14213d;letter-spacing:-.02em}
.s-em{font:italic 400 19px/1.2 "Instrument Serif",Georgia,serif;color:#b08a3e;margin-bottom:12px}
.s-btns{display:flex;gap:6px;margin-bottom:14px}.s-b1{width:70px;height:18px;border-radius:99px;background:#1d3557}.s-b2{width:56px;height:18px;border-radius:99px;border:1px solid #c9ced6}
.s-tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.s-tiles span{aspect-ratio:1;border-radius:8px;background:#f3f5f8;border:1px solid #e3e6eb;display:grid;place-items:center;font-size:13px}
.phone{right:7%;top:20%;width:25%;height:72%;border-radius:22px;background:#0e1013;padding:7px;box-shadow:0 30px 50px -15px rgba(0,0,0,.6),inset 0 0 0 1.5px #3a3f47}
.ph-notch{position:absolute;top:10px;left:50%;width:30%;height:8px;border-radius:6px;background:#000;transform:translateX(-50%);z-index:1}
.ph-in{height:100%;border-radius:16px;background:#fff;padding:22px 9px 9px;display:flex;flex-direction:column;gap:6px;overflow:hidden;font-family:Inter,sans-serif}
.s-logo.sm{font-size:9.5px}.s-logo.sm .mk{width:15px;height:15px;font-size:6.5px;border-radius:4px}
.ph-h{font:700 10px/1.25 Manrope,Inter;color:#14213d}
.ph-row{display:flex;align-items:center;gap:6px;padding:5px;border-radius:7px;background:#f3f5f8;font-size:9px}.ph-row i{height:4px;flex:1;border-radius:2px;background:#d9dde3}
.ph-btn{margin-top:auto;text-align:center;font:600 7.5px Inter;color:#fff;background:#1d3557;border-radius:99px;padding:6px 4px}
.badge{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 8px;border-radius:99px;font:600 12px var(--f-body);white-space:nowrap;background:color-mix(in srgb,var(--surf-hi) 85%,transparent);backdrop-filter:blur(10px);color:var(--text);border:1px solid var(--line2);box-shadow:0 18px 30px -12px rgba(0,0,0,.45);animation:hover3d 5s ease-in-out infinite}
.badge .bdot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:var(--btn-bg);color:var(--btn-fg)}
.badge.b1{left:9%;bottom:13%}.badge.b2{right:14%;top:15%;animation-delay:-2.5s}
@keyframes hover3d{50%{translate:0 -8px}}
/* bolosite mock */
.sbolo .site{background:linear-gradient(160deg,#0f1222,#1a1f3a);height:100%}
.sbolo .browser{background:#0f1222}
.sbolo .s-logo{color:#fff}.sbolo .s-logo .mk.bot,.sbolo .s-logo .mk{background:linear-gradient(135deg,#6ee7f9,#8b7cf6);color:#0f1222;font-size:10px}
.sbolo .s-links i{background:#2b3256}.sbolo .s-cta{background:#6ee7f9;color:#0f1222}
.sbolo .s-kick{color:#6ee7f9}.sbolo .s-h{color:#fff;font-size:20px;letter-spacing:.02em}.sbolo .s-em{color:#a99cf9}
.sbolo .s-b1{background:#6ee7f9}.sbolo .s-b2{border-color:#3a4170}
.wave{display:flex;align-items:center;gap:4px;height:40px}
.wave i{flex:1;border-radius:3px;background:linear-gradient(#6ee7f9,#8b7cf6);height:30%;animation:wv 1.2s ease-in-out infinite}
.wave i:nth-child(2n){animation-delay:-.3s}.wave i:nth-child(3n){animation-delay:-.6s}.wave i:nth-child(5n){animation-delay:-.9s}
@keyframes wv{50%{height:100%}}
.chat .ph-in{background:#f5f6fb}
.sbolo .chat .s-logo{color:#1a1f3a}
.s-h,.s-em,.ph-h{white-space:normal}
.msg{font:500 8px/1.35 Inter;padding:6px 8px;border-radius:10px;max-width:88%}
.msg.me{align-self:flex-end;background:#1a1f3a;color:#fff;border-bottom-right-radius:3px}
.msg.bot{align-self:flex-start;background:#fff;color:#1a1f3a;border:1px solid #e3e5f0;border-bottom-left-radius:3px}
.mic{margin-top:auto;display:flex;align-items:center;gap:3px;padding:5px 8px;border-radius:99px;background:linear-gradient(135deg,#6ee7f9,#8b7cf6)}
.mic span{font-size:9px;margin-right:3px}.mic i{width:3px;height:8px;border-radius:2px;background:#0f1222;animation:wv2 .9s ease-in-out infinite}
.mic i:nth-child(odd){animation-delay:-.45s}
@keyframes wv2{50%{height:3px}}
.info-top{display:flex;justify-content:space-between;gap:12px;align-items:center}
.loc{font-size:12px;color:var(--faint);white-space:nowrap}
.work-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.btn.sm{padding:11px 18px;font-size:14px}
.ext{display:inline-block;transition:transform .3s}.btn:hover .ext{transform:translate(2px,-2px)}
a.client{transition:opacity .2s}a.client:hover{opacity:.7}
/* case modal */
.case-box{width:min(860px,100%)}
.case-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-inline-end:50px}
.case-head h3{font:800 34px/1.1 Manrope,sans-serif;margin:8px 0 0;padding:0}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}
.facts div{padding:14px 16px;border-radius:14px;background:var(--bg2);border:1px solid var(--line)}
.facts small{display:block;font-size:12px;color:var(--faint);margin-bottom:2px}
.facts b{font-size:14.5px;font-weight:600}
.case-cols{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;margin-top:22px}
.case-cols h4{font-size:15px;color:var(--accent);margin-bottom:12px;font-family:var(--f-body);font-weight:600}
.xchips{display:flex;flex-wrap:wrap;gap:8px}
.xchips span{font-size:13.5px;padding:8px 12px;border-radius:10px;background:var(--chrome-soft);border:1px solid var(--line2)}
.case-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
/* chrome cube */
.cube-wrap{perspective:800px;width:130px;height:130px;margin-top:44px}
.cube{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:cube 16s linear infinite}
.cube-wrap:hover .cube{animation-duration:5s}
.cube i{position:absolute;inset:0;border-radius:16px;border:1px solid var(--line2);background:linear-gradient(135deg,#f5f7f9,#9aa1aa 40%,#e3e6ea 60%,#6d747d);opacity:.94;display:grid;place-items:center;font:800 40px Manrope;color:#1c2026;font-style:normal;box-shadow:inset 0 0 30px rgba(255,255,255,.4)}
[data-theme="dark"] .cube i{background:linear-gradient(135deg,#d9dde2,#59606a 40%,#c3c8ce 60%,#2c3036)}
.cube i:nth-child(1){transform:translateZ(65px)}.cube i:nth-child(2){transform:rotateY(180deg) translateZ(65px)}
.cube i:nth-child(3){transform:rotateY(90deg) translateZ(65px)}.cube i:nth-child(4){transform:rotateY(-90deg) translateZ(65px)}
.cube i:nth-child(5){transform:rotateX(90deg) translateZ(65px)}.cube i:nth-child(6){transform:rotateX(-90deg) translateZ(65px)}
@keyframes cube{from{transform:rotateX(-22deg) rotateY(0)}to{transform:rotateX(-22deg) rotateY(360deg)}}
@keyframes flip{from{transform:scale(1.12) rotateY(0)}to{transform:scale(1.12) rotateY(360deg)}}
.node.on .dot{animation:flip .7s var(--ease)}

/* approach */
.approach{display:grid;grid-template-columns:1fr 1.4fr;gap:60px;align-items:start}
.appr-list{display:grid;gap:14px}
.appr-item{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:26px}
.appr-item .n{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font:700 18px Manrope;background:var(--chrome-soft);border:1px solid var(--line2)}

/* process */
.proc{border-radius:28px;border:1px solid var(--line);background:var(--surf);padding:44px}
.track{position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.track::before{content:"";position:absolute;top:27px;inset-inline:7%;height:2px;background:var(--line)}
.track .fill{position:absolute;top:27px;inset-inline-start:7%;height:2px;background:var(--chrome);background-size:200% 100%;transition:width .6s var(--ease)}
.node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;background:none;border:0;cursor:pointer;padding:0;text-align:center}
.node .dot{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font:700 15px Manrope;background:var(--surf-solid);border:1px solid var(--line2);color:var(--muted);transition:.35s var(--ease)}
.node span{font-size:14px;font-weight:600;color:var(--muted);transition:.3s}
.node.done .dot{color:var(--text)}
.node.on .dot{background:var(--btn-bg);color:var(--btn-fg);border-color:transparent;transform:scale(1.12);box-shadow:var(--btn-shadow)}
.node.on span{color:var(--text)}
.proc-panel{margin-top:40px;padding:30px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line);display:flex;align-items:center;gap:26px;min-height:120px}
.proc-panel .big{font:800 64px/1 Manrope;background:var(--chrome);-webkit-background-clip:text;background-clip:text;color:transparent;flex:none}
.proc-panel h4{font-size:24px;margin-bottom:4px}
.proc-panel p{color:var(--muted)}
.proc-panel .txt{animation:fadeUp .5s var(--ease)}

/* tech */
.tech-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.tech-col{padding:24px}
.tech-col h5{font:600 13px var(--f-body);color:var(--accent);margin-bottom:14px}
.tech-col ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.tech-col li{font-size:14px;padding:8px 12px;border-radius:10px;background:var(--bg2);border:1px solid var(--line)}
.note{margin-top:22px;color:var(--faint);font-size:14px;text-align:center}

/* insights */
.ins-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.article{cursor:pointer;display:flex;flex-direction:column;gap:14px;padding:34px;min-height:260px}
.article .meta{display:flex;gap:12px;font-size:13px;color:var(--faint);align-items:center}
.article h3{font-size:26px}
.article p{flex:1}
.article .link{font-weight:600;font-size:15px;display:inline-flex;gap:8px;align-items:center}

/* faq */
.faq{max-width:860px;margin:0 auto}
.qa{border-bottom:1px solid var(--line)}
.qa button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 4px;background:none;border:0;cursor:pointer;font:600 19px/1.5 var(--f-head);text-align:start}
.qa .pm{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);position:relative;transition:.35s}
.qa .pm::before,.qa .pm::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:1.6px;background:currentColor;transform:translate(-50%,-50%);transition:.35s}
.qa .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.qa.open .pm{background:var(--btn-bg);color:var(--btn-fg);border-color:transparent}
.qa.open .pm::after{transform:translate(-50%,-50%) rotate(0)}
.qa .ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.qa.open .ans{grid-template-rows:1fr}
.qa .ans>div{overflow:hidden}
.qa .ans p{color:var(--muted);padding:0 4px 26px;max-width:720px;font-size:16px}

/* contact */
.contact{border-radius:32px;border:1px solid var(--line);background:var(--surf);padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:60px;overflow:hidden;position:relative}
.contact::after{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,var(--sheen),transparent 70%);top:-250px;inset-inline-start:-150px;pointer-events:none}
.contact h2{font-size:clamp(34px,4.4vw,56px);margin:18px 0 18px}
.contact .lead{color:var(--muted);font-size:17px}
form{display:grid;gap:14px;position:relative;z-index:1}
.field label{display:block;font-size:13.5px;color:var(--muted);margin-bottom:7px;font-weight:500}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;border-radius:14px;border:1px solid var(--line2);background:var(--bg2);color:var(--text);font:15px var(--f-body);outline:none;transition:border-color .2s,box-shadow .2s;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-bg)}
.field.bad input{border-color:#d0645c}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.err{color:#d0645c;font-size:14px;display:none}
.err.show{display:block}
.ok{display:none;text-align:center;padding:40px 10px;position:relative;z-index:1}
.ok.show{display:block;animation:fadeUp .5s var(--ease)}
.ok .tick{width:76px;height:76px;margin:0 auto 20px;border-radius:50%;background:var(--btn-bg);color:var(--btn-fg);display:grid;place-items:center;box-shadow:var(--btn-shadow)}
.ok .tick svg{width:32px;stroke:currentColor;fill:none;stroke-width:2.4}
.ok h3{font-size:28px;margin-bottom:10px}
.ok p{color:var(--muted);margin-bottom:22px}

/* footer */
footer{padding:80px 0 34px;margin-top:40px;border-top:1px solid var(--line)}
.ft-grid{display:grid;grid-template-columns:1.6fr 1.4fr 1fr 1fr;gap:34px}
.ft-grid h5{font:600 13px var(--f-body);color:var(--accent);margin-bottom:16px}
.ft-grid a{display:block;padding:5px 0;color:var(--muted);font-size:14.5px;transition:.2s}
.ft-grid a:hover{color:var(--text)}
.ft-about p{color:var(--muted);margin:16px 0;max-width:300px;font-size:15px}
.ft-big{font:800 clamp(64px,16vw,230px)/.9 Manrope;letter-spacing:-.06em;text-align:center;margin-top:60px;background:linear-gradient(180deg,var(--line2),transparent 85%);-webkit-background-clip:text;background-clip:text;color:transparent;user-select:none}
.ft-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-top:24px;border-top:1px solid var(--line);color:var(--faint);font-size:13.5px}

/* modal */
.modal{position:fixed;inset:0;z-index:200;background:rgba(5,6,8,.6);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:20px}
.modal.on{display:flex;animation:fadeIn .25s}
.modal-box{width:min(640px,100%);max-height:88vh;overflow:auto;background:var(--surf-solid);border:1px solid var(--line);border-radius:26px;padding:40px;position:relative;box-shadow:var(--shadow);animation:fadeUp .4s var(--ease)}
.modal-box .x{position:absolute;top:16px;inset-inline-end:16px}
.modal-box h3{font-size:30px;margin:10px 0 10px;padding-inline-end:40px}
.modal-box .md{color:var(--muted);margin-bottom:22px}
.modal-box ol{display:grid;gap:12px;padding:0;list-style:none;counter-reset:c}
.modal-box li{counter-increment:c;display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start;padding:14px;border-radius:14px;background:var(--bg2);border:1px solid var(--line)}
.modal-box li::before{content:counter(c);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:700 14px Manrope;background:var(--chrome-soft);border:1px solid var(--line2)}
@keyframes fadeIn{from{opacity:0}}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* reveal */
.rv{opacity:0;transform:perspective(1000px) rotateX(12deg) translateY(40px);transform-origin:50% 0;transition:opacity .9s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ============ RESPONSIVE ============ */
@media(max-width:1180px){
  .menu,.nav-cta{display:none}
  .burger{display:grid}
  .nav-tools{margin-inline-start:auto}
}
@media(max-width:980px){
  .hero-grid,.approach,.contact{grid-template-columns:1fr}
  .stage{max-width:460px;margin:0 auto;order:-1}
  .hero{padding-top:110px}
  .grid-3,.work-grid,.ins-grid{grid-template-columns:1fr 1fr}
  .tech-grid{grid-template-columns:repeat(3,1fr)}
  .svc-groups{grid-template-columns:1fr 1fr}
  .ft-grid{grid-template-columns:1fr 1fr}
  .approach{gap:20px}
  .contact{padding:40px;gap:30px}
}
@media(max-width:720px){
  section{padding:80px 0}
  .grid-3,.work-grid,.ins-grid,.svc-groups,.two{grid-template-columns:1fr}
  .tech-grid{grid-template-columns:1fr 1fr}
  .proc{padding:24px}
  .track{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:76px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
  .track::before,.track .fill{display:none}
  .node span{font-size:12.5px}
  .proc-panel{flex-direction:column;align-items:flex-start;gap:12px}
  .proc-panel .big{font-size:44px}
  .contact{padding:28px;border-radius:24px}
  .ft-grid{grid-template-columns:1fr}
  .lang-btn .lbl{display:none}
  .lang-btn{padding:0 12px}
  .logo small{display:none}
  .modal-box{padding:28px}
  .work .shot{height:300px}
  .browser{width:76%;left:4%}.phone{width:30%;right:4%}
  .s-h,.s-em{font-size:14px!important}.s-tiles span{font-size:10px}
  .badge{font-size:11px}
  .facts,.case-cols{grid-template-columns:1fr}
  .case-head h3{font-size:26px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}

/* =====================================================================
   CONTACT DETAILS · WHATSAPP · ACCOUNTS · DASHBOARD
   ===================================================================== */
[hidden]{display:none!important}
.wa-ic{width:20px;height:20px;fill:currentColor;flex:none}
.btn-wa{background:linear-gradient(180deg,#2bd46b 0%,#17a34a 55%,#118a3d 100%);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 12px 26px -12px rgba(23,163,74,.75)}
.btn-wa::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .7s var(--ease)}
.btn-wa:hover::after{left:130%}
.btn .spin{display:none;width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:rot .7s linear infinite}
.btn.busy{pointer-events:none;opacity:.85}.btn.busy .spin{display:inline-block}.btn.busy .arr{display:none}
.btn.full{width:100%;justify-content:center}

/* nav account button */
.acct-btn{height:42px;display:flex;align-items:center;gap:8px;padding:0 14px 0 6px;border-radius:99px;border:1px solid var(--line);background:var(--surf-solid);cursor:pointer;font:600 13.5px/1 var(--f-body);transition:.25s;white-space:nowrap}
[dir="rtl"] .acct-btn{padding:0 6px 0 14px}
.acct-btn:hover{border-color:var(--line2);transform:translateY(-1px)}
.acct-ic,.acct-av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--chrome-soft);border:1px solid var(--line2)}
.acct-ic svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.acct-av{background:var(--btn-bg);color:var(--btn-fg);font:800 12px Manrope;border:0}
.acct-btn.in .acct-ic{display:none}
@media(max-width:1180px){.acct-lbl{display:none}.acct-btn{padding:0 5px;width:42px;justify-content:center}}

/* contact list */
.ct-title{font:600 14px var(--f-body);color:var(--accent);margin:34px 0 14px}
.ct-list{list-style:none;display:grid;gap:10px;margin-bottom:16px;position:relative;z-index:1}
.ct-item{display:flex;align-items:center;gap:14px;padding:12px 12px 12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--bg2);transition:transform .2s ease-out,border-color .3s,box-shadow .3s}
.ct-item:hover{border-color:var(--line2);box-shadow:var(--shadow)}
.ct-ic{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--chrome-soft);border:1px solid var(--line2);box-shadow:0 1px 0 var(--sheen) inset}
.ct-ic svg{width:19px;height:19px;stroke:var(--text);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ct-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.ct-txt small{font-size:12px;color:var(--faint)}
.ct-txt a{font-weight:600;font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start}
[dir="rtl"] .ct-txt a{text-align:right}
.ct-txt a:hover{color:var(--accent)}
.ct-copy{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid var(--line2);background:var(--surf-solid);display:grid;place-items:center;cursor:pointer;color:var(--text);transition:.25s}
.ct-copy svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.ct-copy:hover{transform:scale(1.08)}
.ct-copy.wa{background:linear-gradient(180deg,#2bd46b,#118a3d);border-color:transparent;color:#fff}
.ct-copy.wa .wa-ic{width:18px;height:18px}
.contact .btn-wa{position:relative;z-index:1}
.cube-wrap{width:110px;height:110px;margin-top:34px}
.cube i{transform-origin:center}
.cube i:nth-child(1){transform:translateZ(55px)}.cube i:nth-child(2){transform:rotateY(180deg) translateZ(55px)}
.cube i:nth-child(3){transform:rotateY(90deg) translateZ(55px)}.cube i:nth-child(4){transform:rotateY(-90deg) translateZ(55px)}
.cube i:nth-child(5){transform:rotateX(90deg) translateZ(55px)}.cube i:nth-child(6){transform:rotateX(-90deg) translateZ(55px)}
.cube i{font-size:34px}

/* form extras */
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-btns{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.form-btns .btn{flex:1;justify-content:center;min-width:180px}
.form-btns .or{color:var(--faint);font-size:13px}
.field.bad input,.field.bad textarea,.field.bad select{border-color:#d0645c}
.ok-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.ok-ref{color:var(--muted);margin:-8px 0 18px!important}
.ok-mail{margin-top:18px!important;font-size:14px;color:var(--faint)!important}
.ok-mail a{color:var(--text);font-weight:600}

/* footer contact */
.ft-grid.ft-5{grid-template-columns:1.4fr 1.3fr 1fr 1fr 1.3fr}
.ft-contact a{word-break:break-all}
@media(max-width:980px){.ft-grid.ft-5{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.ft-grid.ft-5{grid-template-columns:1fr}}

/* floating WhatsApp (3D chrome) */
.fab-wa{position:fixed;bottom:22px;inset-inline-end:22px;z-index:90;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;perspective:400px}
.fab-core{position:relative;z-index:1;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:radial-gradient(circle at 30% 25%,#5ff08f 0,#20b95a 35%,#0f7f38 75%,#0a5e29 100%);
  box-shadow:0 0 0 4px rgba(255,255,255,.08),0 0 0 5px var(--line2),inset 0 2px 6px rgba(255,255,255,.5),inset 0 -6px 12px rgba(0,0,0,.35),0 16px 34px -10px rgba(16,130,60,.8);
  transition:transform .5s var(--ease);transform-style:preserve-3d}
.fab-core .wa-ic{width:30px;height:30px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}
.fab-wa:hover .fab-core{transform:rotateY(360deg) scale(1.06)}
.fab-ring{position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}
.fab-tip{position:absolute;inset-inline-end:76px;white-space:nowrap;padding:9px 14px;border-radius:12px;background:var(--surf-solid);border:1px solid var(--line);box-shadow:var(--shadow);font-size:13.5px;font-weight:600;opacity:0;transform:translateX(8px);transition:.3s;pointer-events:none}
[dir="rtl"] .fab-tip{transform:translateX(-8px)}
.fab-wa:hover .fab-tip{opacity:1;transform:none}

/* toast */
.toast{position:fixed;bottom:100px;left:50%;z-index:300;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:13px 20px;border-radius:14px;background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow),var(--shadow);font-weight:600;font-size:14.5px;transition:.35s var(--ease);max-width:calc(100% - 40px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- AUTH: 3D flip card ---------- */
.auth-modal{background:radial-gradient(60% 60% at 50% 40%,rgba(120,135,155,.25),rgba(5,6,8,.75));overflow:auto}
.auth-stage{position:relative;width:min(470px,100%);perspective:1600px;margin:auto}
.auth-x{position:absolute;top:-8px;inset-inline-end:-8px;z-index:5}
.auth-card{display:grid;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.7,-.2,.25,1.2);transform:rotateX(var(--rx,0deg)) rotateY(calc(var(--ry,0deg) + var(--flip,0deg)))}
.auth-card.flipped{--flip:180deg}
.auth-modal.on .auth-stage{animation:authIn .8s var(--ease)}
@keyframes authIn{from{opacity:0;transform:translateY(40px) rotateX(25deg) scale(.92)}to{opacity:1;transform:none}}
.auth-face{grid-area:1/1;backface-visibility:hidden;-webkit-backface-visibility:hidden;padding:38px 34px 30px;border-radius:28px;background:var(--surf-solid);border:1px solid var(--line2);box-shadow:var(--shadow),0 1px 0 var(--sheen) inset;position:relative;overflow:hidden}
.auth-face::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,var(--sheen) 45%,transparent 60%);background-size:250% 100%;animation:sheen 6s linear infinite;pointer-events:none}
@keyframes sheen{from{background-position:150% 0}to{background-position:-100% 0}}
.auth-back{transform:rotateY(180deg)}
.auth-face h3{font-size:28px;margin-bottom:6px;position:relative}
.auth-sub{color:var(--muted);margin-bottom:22px;font-size:15px;position:relative}
.auth-face form{gap:12px}
.auth-logo{height:74px;margin-bottom:16px;perspective:300px}
.orb3d{display:block;width:70px;height:70px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff 0,#d9dde2 14%,#8b929b 40%,#2c3036 72%,#a7adb5 100%);box-shadow:inset -8px -12px 20px rgba(0,0,0,.35),0 16px 30px -12px rgba(0,0,0,.6);animation:orbSpin 6s ease-in-out infinite;position:relative}
.orb3d::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:1.5px solid var(--line2);transform:rotateX(70deg);animation:rot 5s linear infinite}
@keyframes orbSpin{50%{transform:translateY(-6px) rotateZ(8deg)}}
.field.pw{position:relative}
.field.pw input{padding-inline-end:50px}
.eye{position:absolute;inset-inline-end:8px;bottom:6px;width:38px;height:38px;border-radius:10px;border:0;background:none;cursor:pointer;color:var(--muted);display:grid;place-items:center}
.eye svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7}
.eye.on{color:var(--accent)}
.meter{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:-4px}
.meter i{height:5px;border-radius:3px;background:var(--line2);transition:background .3s}
.meter span{grid-column:1/-1;font-size:12.5px;color:var(--faint)}
.meter[data-s="1"] i:nth-child(1){background:#d0645c}
.meter[data-s="2"] i:nth-child(-n+2){background:#d9a441}
.meter[data-s="3"] i{background:#3fb06b}
.auth-switch{margin-top:18px;background:none;border:0;cursor:pointer;color:var(--accent);font:600 14.5px var(--f-body);text-decoration:underline;text-underline-offset:4px;position:relative}
.auth-secure{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:12.5px;color:var(--faint);position:relative}
.auth-secure svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none}
.err{color:#d0645c;font-size:14px;min-height:0}
.err:empty{display:none}
#loginErr,#signupErr,#pwErr{display:block}
#loginErr:empty,#signupErr:empty,#pwErr:empty{display:none}

/* ---------- DASHBOARD ---------- */
.dash-box{width:min(900px,100%);padding:34px}
.dash-head{display:flex;align-items:center;gap:16px;margin-bottom:22px;padding-inline-end:50px}
.dash-av{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;font:800 22px Manrope;background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow);transform:perspective(300px) rotateY(-14deg) rotateX(8deg)}
.dash-head small{color:var(--faint);font-size:13px}
.dash-head h3{font-size:26px;margin:2px 0 6px}
.role-pill{font-size:11.5px;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:99px;background:var(--accent-bg);color:var(--accent)}
.tabs-row{display:flex;gap:6px;padding:5px;border-radius:14px;background:var(--bg2);border:1px solid var(--line);margin-bottom:20px;overflow-x:auto}
.tabs-row button{flex:1;padding:10px 14px;border-radius:10px;border:0;background:none;cursor:pointer;font:600 14px var(--f-body);color:var(--muted);white-space:nowrap;transition:.25s}
.tabs-row button[aria-selected="true"]{background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow)}
.panel-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.req-list{display:grid;gap:10px}
.req{padding:16px 18px;border-radius:16px;background:var(--bg2);border:1px solid var(--line);display:grid;gap:8px;transition:transform .3s var(--ease),box-shadow .3s}
.req:hover{transform:translateY(-2px) perspective(800px) rotateX(2deg);box-shadow:var(--shadow)}
.req-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.req-top b{font-size:15.5px}
.req-meta{font-size:12.5px;color:var(--faint);display:flex;gap:10px;flex-wrap:wrap}
.req-msg{font-size:14.5px;color:var(--muted);white-space:pre-wrap;word-break:break-word;max-height:7.5em;overflow:auto}
.req-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.req-actions a{font-size:13px;font-weight:600;padding:7px 12px;border-radius:99px;border:1px solid var(--line2)}
.req-actions a.wa{background:linear-gradient(180deg,#2bd46b,#118a3d);color:#fff;border-color:transparent}
.req-actions select{padding:7px 10px;border-radius:10px;border:1px solid var(--line2);background:var(--surf-solid);color:var(--text);font:13px var(--f-body)}
.st{font-size:12px;font-weight:700;padding:4px 10px;border-radius:99px;border:1px solid currentColor}
.st-new{color:#5b8fd6}.st-in_progress{color:#d9a441}.st-done{color:#3fb06b}.st-closed{color:var(--faint)}
.ms{font-size:11.5px;color:var(--faint)}
.ms-failed{color:#d0645c}
.empty{padding:34px;text-align:center;color:var(--muted);border:1px dashed var(--line2);border-radius:16px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.stat{padding:16px;border-radius:16px;background:var(--chrome-soft);border:1px solid var(--line2);transform:perspective(600px) rotateX(6deg);transition:transform .3s}
.stat:hover{transform:perspective(600px) rotateX(0) translateY(-3px)}
.stat b{display:block;font:800 30px Manrope}
.stat small{font-size:12.5px;color:var(--muted)}
.user-list{display:grid;gap:8px}
.urow{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--bg2);border:1px solid var(--line)}
.urow .uav{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font:800 14px Manrope;background:var(--chrome-soft);border:1px solid var(--line2)}
.urow small{display:block;color:var(--faint);font-size:12.5px;word-break:break-all}
.pw-form{margin:22px 0;padding:20px;border-radius:16px;background:var(--bg2);border:1px solid var(--line)}
.pw-form h4{font-size:16px;margin-bottom:12px}
.logout{margin-top:4px}
@media(max-width:720px){
  .stats{grid-template-columns:1fr 1fr}
  .dash-box{padding:24px 18px}
  .auth-face{padding:30px 22px 24px}
  .fab-wa{bottom:16px;inset-inline-end:16px;width:56px;height:56px}.fab-core{width:56px;height:56px}
  .fab-tip{display:none}
  .form-btns .or{display:none}
}
.grid-3>*,.work-grid>*,.ins-grid>*,.tech-grid>*,.contact>*{min-width:0}
@media(max-width:720px){.work-btns .btn{flex:1;justify-content:center;white-space:normal;text-align:center}.info-top{flex-wrap:wrap}}
main,footer{overflow-x:clip}
.auth-front{display:flex;flex-direction:column;justify-content:center}
.ct-list{grid-template-columns:minmax(0,1fr)}.ct-item{min-width:0}
@media(max-width:720px){.ct-txt a{white-space:normal;overflow-wrap:anywhere;font-size:14.5px}.ct-item{gap:10px;padding:10px}.ct-ic{width:38px;height:38px}.cube-wrap{display:none}}

/* =====================================================================
   TEAM — 3D flip cards
   ===================================================================== */
.team-sec{overflow:hidden}
.team-bg{position:absolute;inset:0;perspective:1200px;pointer-events:none}
.tb-ring{position:absolute;left:50%;top:55%;border-radius:50%;border:1px solid var(--line2);transform-style:preserve-3d}
.tb-ring.r1{width:900px;height:900px;margin:-450px;animation:ringA 40s linear infinite}
.tb-ring.r2{width:680px;height:680px;margin:-340px;border-style:dashed;animation:ringB 30s linear infinite}
.tb-ring.r3{width:1200px;height:1200px;margin:-600px;opacity:.5;animation:ringA 60s linear infinite reverse}
@keyframes ringA{from{transform:rotateX(72deg) rotateZ(0)}to{transform:rotateX(72deg) rotateZ(360deg)}}
@keyframes ringB{from{transform:rotateX(64deg) rotateY(14deg) rotateZ(0)}to{transform:rotateX(64deg) rotateY(14deg) rotateZ(-360deg)}}
.team-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.tcard{perspective:1400px;min-height:440px}
.tcard-in{position:relative;height:100%;min-height:440px;transform-style:preserve-3d;cursor:pointer;outline:none;
  transform:rotateX(var(--rx,0deg)) rotateY(calc(var(--ry,0deg) + var(--flip,0deg)));transition:transform .9s cubic-bezier(.7,-.15,.25,1.15)}
.tcard-in.flipped{--flip:180deg}
.tcard-in:focus-visible{box-shadow:0 0 0 3px var(--accent);border-radius:24px}
.tface{position:absolute;inset:0;border-radius:24px;border:1px solid var(--line2);background:var(--surf);box-shadow:var(--shadow),0 1px 0 var(--sheen) inset;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;overflow:hidden}
.tfront{display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 22px 22px}
.tfront::before{content:"";position:absolute;inset:0 0 auto;height:56%;background:radial-gradient(80% 90% at 50% 0%,var(--sheen),transparent 70%),var(--chrome-soft);border-bottom:1px solid var(--line);z-index:0}
.tfront::after,.tback::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,var(--sheen) 48%,transparent 62%);background-size:260% 100%;background-position:150% 0;transition:background-position 1.1s var(--ease);pointer-events:none}
.tcard:hover .tfront::after{background-position:-60% 0}
.t-num{position:absolute;top:16px;inset-inline-start:18px;font:700 12px Manrope;color:var(--faint);z-index:1}
.t-stage{position:relative;width:150px;height:150px;margin:6px 0 20px;transform-style:preserve-3d;transform:translateZ(70px);z-index:1}
.t-orbit{position:absolute;inset:-14px;border-radius:50%;border:1px solid var(--line2);transform-style:preserve-3d}
.t-orbit.o1{animation:orb1 9s linear infinite}.t-orbit.o2{inset:-26px;border-style:dashed;opacity:.6;animation:orb2 14s linear infinite}
.t-orbit i{position:absolute;top:-5px;left:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#9aa1aa 60%,#3a3f47);box-shadow:0 0 10px rgba(255,255,255,.4)}
@keyframes orb1{from{transform:rotateX(68deg) rotateZ(0)}to{transform:rotateX(68deg) rotateZ(360deg)}}
@keyframes orb2{from{transform:rotateY(70deg) rotateZ(0)}to{transform:rotateY(70deg) rotateZ(-360deg)}}
.t-av{position:absolute;inset:0;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  background:radial-gradient(circle at 32% 26%,#ffffff 0,#dfe3e8 14%,#9aa1aa 42%,#3b4048 74%,#b4bac2 100%);
  box-shadow:inset -10px -16px 28px rgba(0,0,0,.4),inset 6px 8px 16px rgba(255,255,255,.45),0 26px 40px -16px rgba(0,0,0,.65),0 0 0 4px var(--surf-solid),0 0 0 5px var(--line2);
  animation:avFloat 6s ease-in-out infinite}
.tcard:nth-child(2) .t-av{animation-delay:-1.5s}.tcard:nth-child(3) .t-av{animation-delay:-3s}.tcard:nth-child(4) .t-av{animation-delay:-4.5s}
@keyframes avFloat{50%{translate:0 -8px}}
.t-ini{font:800 44px/1 Manrope,sans-serif;color:#1c2026;text-shadow:0 1px 0 rgba(255,255,255,.6),0 -1px 0 rgba(0,0,0,.25);letter-spacing:-.03em}
.t-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.t-role{position:relative;z-index:1;transform:translateZ(50px);font:700 11.5px var(--f-body);letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:99px;background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow)}
html:not([lang="en"]) .t-role{letter-spacing:.02em;text-transform:none;font-size:13px}
.t-name{position:relative;z-index:1;transform:translateZ(40px);font:800 23px/1.2 Manrope,sans-serif;margin:14px 0 6px}
.t-edu{position:relative;z-index:1;transform:translateZ(25px);font-size:13.5px;color:var(--muted)}
.t-hint{position:relative;z-index:1;margin-top:auto;padding-top:14px;font-size:12.5px;color:var(--faint);display:inline-flex;gap:6px;align-items:center;transition:color .3s}
.tcard:hover .t-hint{color:var(--accent)}
.tback{transform:rotateY(180deg);padding:26px 24px;display:flex;flex-direction:column;gap:16px}
.tb-head{display:flex;align-items:center;gap:12px;transform:translateZ(40px)}
.tb-head b{display:block;font:800 18px Manrope}
.tb-head small{color:var(--accent);font-weight:600;font-size:13px}
.t-mini{width:46px;height:46px;flex:none;border-radius:14px;display:grid;place-items:center;font:800 15px Manrope;background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow)}
.t-bio{color:var(--text);font-size:15px;line-height:1.7;transform:translateZ(25px)}
html[lang="ur"] .t-bio{line-height:2.1;font-size:14px}
.t-edu2{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--muted);padding:12px;border-radius:14px;background:var(--bg2);border:1px solid var(--line)}
.t-edu2 svg{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6}
.tb-btns{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}
.btn-li{background:linear-gradient(180deg,#2a7fd4,#0a5bb0);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 10px 22px -10px rgba(10,91,176,.8)}
.btn-li svg{width:16px;height:16px;fill:currentColor}
.credit b{color:var(--text)}
@media(max-width:1100px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.team-grid{grid-template-columns:minmax(0,1fr)}.tcard,.tcard-in{min-height:420px}.tb-ring.r1,.tb-ring.r3{display:none}}
/* keep real depth inside the faces (no overflow clipping) */
.tface{overflow:visible}
.tfront::before{border-radius:24px 24px 0 0}
.tfront::after,.tback::after{border-radius:inherit}
.tfront>*,.tback>*{backface-visibility:hidden;-webkit-backface-visibility:hidden}
/* swap faces exactly at mid-flip so nothing from the other side bleeds through */
.tfront,.tback{transition:visibility 0s .42s}
.tback{visibility:hidden}
.tcard-in.flipped .tfront{visibility:hidden}
.tcard-in.flipped .tback{visibility:visible}
.tfront::before,.tfront::after,.tback::after{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.team-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.btn-line.sm svg{width:16px;height:16px}
@media(max-width:1100px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.team-grid{grid-template-columns:minmax(0,1fr)}}

/* ---- logo: chrome disc with spinning 3D infinity ---- */
.logo-mark{position:relative;width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;perspective:120px;
  background:radial-gradient(circle at 32% 26%,#ffffff 0,#eef0f3 22%,#b9bec5 55%,#7d838c 82%,#d5d9de 100%);
  box-shadow:inset -3px -4px 7px rgba(0,0,0,.28),inset 2px 3px 5px rgba(255,255,255,.9),0 4px 10px -3px rgba(0,0,0,.45),0 0 0 1px var(--line2)}
.lm-shine{position:absolute;inset:0;border-radius:50%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%);background-size:250% 100%;animation:lmShine 4.5s ease-in-out infinite;pointer-events:none}
@keyframes lmShine{0%,30%{background-position:150% 0}70%,100%{background-position:-60% 0}}
.lm-3d{width:26px;height:13px;transform-style:preserve-3d;animation:lmSpin 4s linear infinite}
.lm-inf{width:100%;height:100%;overflow:visible;display:block}
.lm-inf path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.lm-sh{stroke:rgba(0,0,0,.35);stroke-width:7;transform:translate(1px,2px);filter:blur(.6px)}
.lm-main{stroke:#16191e;stroke-width:6}
.lm-hi{stroke:url(#lmGrad);stroke:#8e959e;stroke-width:1.6;stroke-dasharray:22 120;animation:lmFlow 2.2s linear infinite}
@keyframes lmSpin{0%{transform:rotateX(14deg) rotateY(0)}50%{transform:rotateX(-14deg) rotateY(180deg)}100%{transform:rotateX(14deg) rotateY(360deg)}}
@keyframes lmFlow{to{stroke-dashoffset:-142}}
.logo:hover .lm-3d{animation-duration:1.4s}
footer .logo-mark{width:40px;height:40px}footer .lm-3d{width:30px;height:15px}

/* ---- footer credit (compact) ---- */
.ft-bottom{align-items:center}
.credit{display:inline-flex;align-items:center;gap:10px;padding:5px 12px 5px 5px;border-radius:99px;border:1px solid var(--line);background:var(--surf-solid);color:var(--muted);transition:border-color .3s,transform .3s var(--ease),box-shadow .3s;max-width:100%}
[dir="rtl"] .credit{padding:5px 5px 5px 12px}
.credit:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:var(--shadow)}
.credit-av{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 2px var(--surf-solid),0 0 0 3px var(--line2)}
.credit-txt{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.credit-txt small{font-size:11px;color:var(--faint)}
.credit-txt>span{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.credit-txt b{color:var(--text);font-weight:700}
.credit-li{width:24px;height:24px;flex:none;border-radius:6px;display:grid;place-items:center;background:linear-gradient(180deg,#2a7fd4,#0a5bb0);color:#fff}
.credit-li svg{width:13px;height:13px;fill:currentColor}
@media(max-width:600px){.ft-bottom{flex-direction:column;align-items:flex-start}}
.logo .lm-inf{width:100%;height:100%}
.ft-grid .ft-about a.logo{display:inline-flex;padding:0}
.lm-3d{width:28px;height:14px}footer .lm-3d{width:32px;height:16px}
/* render the infinity at 2x and scale down → crisp while spinning */
.lm-3d{width:56px;height:28px;animation-name:lmSpin2}
footer .lm-3d{width:64px;height:32px}
@keyframes lmSpin2{0%{transform:scale(.5) rotateX(14deg) rotateY(0)}50%{transform:scale(.5) rotateX(-14deg) rotateY(180deg)}100%{transform:scale(.5) rotateX(14deg) rotateY(360deg)}}
.logo-mark{overflow:visible}
.lm-3d{position:absolute;left:50%;top:50%;margin:-14px 0 0 -28px}footer .lm-3d{margin:-16px 0 0 -32px}
