:root{
  --green-900:#04122b;--green-800:#0a1f3f;--green-700:#0f2d5c;--green-600:#1668d8;
  --blue-600:#1668d8;--blue-500:#2f8bff;--sky:#7db8ff;
  --lime:#2f8bff;--lime-soft:#a9cfff;--cream:#f4f7fc;--ink:#0b1626;
  --white:#ffffff;--muted:rgba(255,255,255,.80);--card:#ffffff;
  --shadow:0 24px 60px -24px rgba(4,20,45,.5);
  --radius:26px;--radius-lg:42px;
  --font-head:"Poppins","Segoe UI",system-ui,sans-serif;
  --font-body:"Inter","Segoe UI",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--cream);color:var(--ink);overflow-x:hidden}
h1,h2,h3,h4,.brand{font-family:var(--font-head);font-weight:800;letter-spacing:-.02em;line-height:1.05}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{width:min(1180px,92vw);margin-inline:auto}
.section{padding:96px 0;position:relative}
.eyebrow{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--lime);margin-bottom:14px}
.dark{background:var(--green-800);color:var(--white)}
.dark p{color:var(--muted)}
.lead{font-size:1.06rem;line-height:1.75;color:#41506b;max-width:62ch}
.dark .lead{color:var(--muted)}


.aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.aurora span{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;animation:drift 18s ease-in-out infinite}
.aurora span:nth-child(1){width:520px;height:520px;background:#1668d8;top:-160px;left:-120px}
.aurora span:nth-child(2){width:420px;height:420px;background:#2f8bff55;bottom:-140px;right:-80px;animation-delay:-6s}
.aurora span:nth-child(3){width:360px;height:360px;background:#7db8ff44;top:40%;right:30%;animation-delay:-11s}
@keyframes drift{0%,100%{transform:translate3d(0,0,0) scale(1)}33%{transform:translate3d(60px,-40px,0) scale(1.12)}66%{transform:translate3d(-50px,40px,0) scale(.94)}}


.nav{position:fixed;inset:0 0 auto 0;z-index:60;padding:16px 0;transition:.35s ease;background:transparent}
.nav.scrolled{background:rgba(10,31,63,.92);backdrop-filter:blur(14px);padding:8px 0;box-shadow:0 10px 30px -18px #000}
.nav-inner{display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;font-size:1.05rem;line-height:1.1}
.brand img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));transition:transform .5s cubic-bezier(.2,.9,.3,1.4)}
.brand:hover img{transform:rotate(-6deg) scale(1.08)}
.brand small{display:block;font-family:var(--font-body);font-weight:500;font-size:.66rem;letter-spacing:.18em;color:var(--lime-soft)}
.nav-links{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.nav-links a{position:relative;color:#e8f1ff;font-weight:600;font-size:.92rem;padding:10px 14px;border-radius:999px;transition:.25s}
.nav-links a::after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:right;transition:transform .35s ease}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);transform-origin:left}
.nav-links a.active{color:#fff}
.status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:.78rem;font-weight:700;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 rgba(47,139,255,.7);animation:pulse 2s infinite}
.status-pill.email{background:rgba(125,184,255,.14)}
.status-pill.email .dot{background:var(--sky);box-shadow:0 0 0 0 rgba(125,184,255,.7);animation:pulse 2s infinite}
.status-pill.closed .dot{background:#ff9d6b;box-shadow:none;animation:none}
@keyframes pulse{70%{box-shadow:0 0 0 12px rgba(47,139,255,0)}100%{box-shadow:0 0 0 0 rgba(47,139,255,0)}}
.burger{display:none;margin-left:auto;width:44px;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.burger i{display:block;width:20px;height:2px;background:#fff;transition:.3s}
.burger.open i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open i:nth-child(2){opacity:0}
.burger.open i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}


.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 28px;border-radius:999px;font-weight:700;font-size:.95rem;border:0;cursor:pointer;transition:transform .3s cubic-bezier(.2,.9,.3,1.3),box-shadow .3s;position:relative;overflow:hidden}
.btn-primary{background:linear-gradient(120deg,#2f8bff,#0f56c4);color:#ffffff;box-shadow:0 16px 34px -16px rgba(47,139,255,.85)}
.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.32)}
.btn:hover{transform:translateY(-4px) scale(1.03)}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-120%)}
.btn:hover::before{animation:sheen .8s ease}
@keyframes sheen{to{transform:translateX(120%)}}


.hero{position:relative;min-height:100vh;display:flex;align-items:center;background:radial-gradient(120% 100% at 10% 0%,var(--green-700),var(--green-900) 60%);color:#fff;overflow:hidden}
.hero::after{content:"";position:absolute;right:-18%;top:-25%;width:80vw;height:150vh;background:rgba(255,255,255,.05);border-radius:45%;transform:rotate(14deg)}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:140px 0 90px}
.hero h1{font-size:clamp(2.9rem,6.4vw,5rem)}
.hero h1 span{display:block;background:linear-gradient(100deg,#fff 30%,var(--lime-soft));-webkit-background-clip:text;background-clip:text;color:transparent}
.chip{display:inline-block;background:var(--lime);color:#ffffff;font-weight:800;padding:10px 20px;border-radius:999px;margin:22px 0 18px;font-size:.95rem;animation:float 4s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px)}}
.hero-art{position:relative;display:grid;place-items:center}
.sun{position:absolute;width:340px;height:340px;border-radius:50%;background:conic-gradient(from 0deg,#7db8ff22,#2f8bff55,#7db8ff22);animation:spin 22s linear infinite;filter:blur(2px)}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-art img{position:relative;width:min(420px,80%);animation:bob 6s ease-in-out infinite;filter:drop-shadow(0 30px 50px rgba(0,0,0,.5))}
@keyframes bob{50%{transform:translateY(-16px)}}
.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-cue::after{content:"";width:1px;height:38px;background:linear-gradient(var(--lime),transparent);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.2;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}


/* Video project showcase */
.video-section{background:linear-gradient(180deg,#f4f7fc 0%,#eef4fc 100%)}
.video-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:34px}
.video-intro h2{font-size:clamp(2rem,4vw,3rem);margin:0}
.video-intro .lead{max-width:46ch;margin:0 0 4px}
.video-showcase{overflow:hidden;border:1px solid rgba(10,31,63,.12);border-radius:var(--radius-lg);background:#061633;box-shadow:0 28px 70px -34px rgba(4,18,43,.7)}
.video-stage{position:relative;isolation:isolate;aspect-ratio:16/9;min-height:360px;overflow:hidden;background:#000}
.video-wash{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(120deg,rgba(6,22,51,.55),transparent 42%,rgba(4,18,43,.28));mix-blend-mode:multiply}
.showcase-video{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transform:scale(1.025);transition:opacity .5s ease,transform .75s cubic-bezier(.2,.9,.3,1),visibility 0s linear .5s}
.showcase-video.is-active{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.showcase-media{display:block;width:100%;height:100%;object-fit:cover;background:#000;filter:saturate(.95) contrast(1.04)}
.showcase-video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,18,43,.05) 34%,rgba(4,18,43,.82) 100%);pointer-events:none}
.video-caption{position:absolute;z-index:2;left:34px;bottom:32px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;color:#fff;max-width:min(560px,62%)}
.video-caption .video-index{font-size:.7rem;font-weight:800;letter-spacing:.18em;color:var(--lime-soft)}
.video-caption strong{font-family:var(--font-head);font-size:clamp(1.3rem,2.6vw,2.15rem);line-height:1.08;letter-spacing:-.025em}
.video-caption small{font-size:.78rem;color:rgba(255,255,255,.76)}
.video-controls{position:absolute;z-index:4;right:28px;bottom:28px;display:flex;align-items:center;gap:12px}
.video-arrow{display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.36);border-radius:50%;background:rgba(6,22,51,.55);backdrop-filter:blur(10px);color:#fff;font-size:1.45rem;line-height:1;cursor:pointer;transition:transform .25s cubic-bezier(.2,.9,.3,1.2),background .25s ease,border-color .25s ease}
.video-arrow:hover{transform:translateY(-3px) scale(1.05);background:var(--blue-600);border-color:transparent}
.video-arrow:active{transform:scale(.96)}
.video-arrow:focus-visible,.video-return:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.video-progress{display:block;width:76px;height:3px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.35)}
.video-progress i{display:block;width:50%;height:100%;border-radius:inherit;background:var(--lime-soft);transform:translateX(0);transition:transform .45s cubic-bezier(.2,.9,.3,1)}
.video-showcase[data-active="1"] .video-progress i{transform:translateX(100%)}
.video-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px;color:var(--sky);font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.video-return{border:0;padding:3px 0;background:transparent;color:#fff;font:inherit;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .25s ease,opacity .25s ease}
.video-return:hover:not(:disabled){color:var(--lime-soft)}
.video-return span{display:inline-block;margin-left:6px;font-size:1rem;transition:transform .25s ease}
.video-return:hover:not(:disabled) span{transform:translateX(-4px)}
.video-return:disabled{cursor:default;opacity:.42}


.page-head{position:relative;padding:170px 0 90px;background:radial-gradient(110% 120% at 80% 0%,var(--green-600),var(--green-900));color:#fff;overflow:hidden}
.page-head h1{font-size:clamp(2.4rem,5.4vw,3.8rem)}
.page-head p{margin-top:16px;max-width:60ch;color:var(--muted)}


.grid{display:grid;gap:24px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--card);border-radius:var(--radius);padding:30px;box-shadow:0 18px 40px -30px rgba(10,31,63,.55);border:1px solid rgba(10,31,63,.07);transition:transform .45s cubic-bezier(.2,.9,.3,1.2),box-shadow .45s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-10px);box-shadow:var(--shadow)}
.card::after{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:linear-gradient(90deg,var(--lime),var(--green-600));transition:width .5s}
.card:hover::after{width:100%}
.card h3{font-size:1.12rem;margin-bottom:10px}
.card p{color:#4a5870;font-size:.94rem;line-height:1.65}
.num{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:linear-gradient(140deg,#0f56c4,#2f8bff);color:#fff;font-weight:800;margin-bottom:16px}
.dark .card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(6px)}
.dark .card p{color:var(--muted)}


.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stat{text-align:center;padding:26px 14px;border-radius:22px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.stat b{display:block;font-family:var(--font-head);font-size:2.4rem;color:var(--lime)}
.stat span{font-size:.82rem;color:var(--muted);letter-spacing:.06em}


.svc-row{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:18px;padding:20px 22px;border-radius:20px;background:#fff;border:1px solid rgba(10,31,63,.08);transition:.4s;margin-bottom:12px}
.svc-row:hover{transform:translateX(10px);background:linear-gradient(90deg,#fff,#f2f8e6);box-shadow:0 18px 40px -30px rgba(10,31,63,.6)}
.svc-row b{display:grid;place-items:center;height:42px;border-radius:12px;background:var(--lime);color:#ffffff}
.svc-row small{display:block;color:#5c687e;font-weight:500;margin-top:3px}


.value{border-left:4px solid var(--lime);padding:6px 0 6px 22px;margin-bottom:34px}
.value h3{color:var(--lime-soft);font-size:1.35rem;margin-bottom:8px}


.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.filters button{padding:11px 20px;border-radius:999px;border:1px solid rgba(10,31,63,.16);background:#fff;font-weight:700;font-size:.86rem;cursor:pointer;transition:.3s}
.filters button.active,.filters button:hover{background:var(--green-800);color:#fff;border-color:transparent;transform:translateY(-2px)}
.proj{border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:0 18px 40px -30px rgba(10,31,63,.6);cursor:pointer;transition:.45s}
.proj:hover{transform:translateY(-10px)}
.proj .ph{overflow:hidden;aspect-ratio:16/11}
.proj img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.9,.3,1)}
.proj:hover img{transform:scale(1.12)}
.proj .body{padding:20px 22px 24px}
.tag{display:inline-block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--green-600);background:#e3edff;padding:5px 11px;border-radius:999px;margin-bottom:10px}
.proj h3{font-size:1.05rem}
.proj p{font-size:.88rem;color:#5c687e;margin-top:8px}
.proj .meta{display:flex;justify-content:space-between;font-size:.78rem;color:#7b869b;margin-top:14px;border-top:1px dashed rgba(10,31,63,.15);padding-top:12px}
.hidden-card{display:none}
.lightbox{position:fixed;inset:0;background:rgba(4,18,43,.92);display:none;place-items:center;z-index:100;padding:24px;backdrop-filter:blur(6px)}
.lightbox.show{display:grid;animation:fade .3s ease}
.lightbox img{max-height:78vh;border-radius:20px;box-shadow:var(--shadow)}
.lightbox p{color:#fff;text-align:center;margin-top:14px;font-weight:600}
@keyframes fade{from{opacity:0}to{opacity:1}}


.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.info-item{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.info-item .ic{width:44px;height:44px;flex:none;border-radius:14px;display:grid;place-items:center;background:linear-gradient(140deg,#2f8bff,#0f56c4);color:#fff;font-weight:800;box-shadow:0 10px 25px rgba(0,0,0,.18)}
.info-item .ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.info-item .ic.phone{background:linear-gradient(140deg,#2f8bff,#0f56c4)}
.info-item .ic.viber{background:linear-gradient(140deg,#7e4dff,#4e2fce)}
.info-item .ic.mail{background:linear-gradient(140deg,#19c37d,#0d8f5f)}
.info-item .ic.office{background:linear-gradient(140deg,#f2b72b,#c77b0b)}
.info-item .ic.support{background:linear-gradient(140deg,#f0675d,#c53e40)}
form.card input,form.card textarea{width:100%;padding:14px 16px;border-radius:14px;border:1px solid rgba(10,31,63,.16);margin-bottom:14px;font:inherit;background:#fff;transition:.25s}
form.card input:focus,form.card textarea:focus{outline:none;border-color:var(--lime);box-shadow:0 0 0 4px rgba(47,139,255,.25)}
.toast{position:fixed;right:24px;bottom:24px;z-index:120;padding:16px 22px;border-radius:16px;color:#fff;font-weight:600;background:var(--green-700);box-shadow:var(--shadow);transform:translateY(140%);transition:transform .5s cubic-bezier(.2,.9,.3,1.4);max-width:340px}
.toast.show{transform:translateY(0)}
.toast.err{background:#c0392b}


footer{background:var(--green-900);color:var(--muted);padding:60px 0 30px}
footer h4{color:#fff;margin-bottom:14px;font-size:1rem}
footer a:hover{color:var(--lime)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.foot-bottom{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}


.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.9,.3,1)}
.reveal.in{opacity:1;transform:none}
main{animation:pagein .6s ease both}
@keyframes pagein{from{opacity:0;transform:translateY(14px)}}

@media(max-width:960px){
  .hero-grid,.g3,.g4,.g2,.contact-grid,.foot-grid,.stats{grid-template-columns:1fr}
  .video-intro{align-items:flex-start;flex-direction:column;gap:14px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .burger{display:flex}
  .nav-links{position:fixed;top:0;right:0;height:100vh;width:min(320px,84vw);background:var(--green-900);flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;padding:32px;transform:translateX(105%);transition:transform .45s cubic-bezier(.2,.9,.3,1.2);box-shadow:-20px 0 60px rgba(0,0,0,.4)}
  .nav-links.open{transform:none}
  .nav-links a{font-size:1.1rem;width:100%}
  .section{padding:70px 0}
}



.chip{background:linear-gradient(120deg,#2f8bff,#0f56c4);color:#fff;box-shadow:0 14px 30px -14px rgba(47,139,255,.9)}
.tag{color:#0f56c4;background:#e3edff}
.dark .tag{color:#fff;background:rgba(47,139,255,.35)}
.section:not(.dark) h2{position:relative}
.card:hover{box-shadow:0 26px 60px -28px rgba(22,104,216,.55)}
.proj{border:1px solid rgba(10,31,63,.07)}
.proj:hover{box-shadow:0 26px 60px -28px rgba(22,104,216,.6)}
.dark .proj{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
.dark .proj h3{color:#fff}
.dark .proj .meta{color:var(--sky);border-top-color:rgba(255,255,255,.18)}
.value{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:28px;transition:transform .45s cubic-bezier(.2,.9,.3,1.2),box-shadow .45s,background .45s}
.value:hover{transform:translateY(-8px);background:rgba(47,139,255,.14);box-shadow:0 26px 60px -30px rgba(47,139,255,.7)}
.value h3{color:#fff;margin-bottom:10px;font-size:1.15rem}
.value p{color:var(--muted);line-height:1.7}
.svc-row{display:flex;gap:18px;align-items:center;padding:18px 22px;border-radius:18px;background:#fff;border:1px solid rgba(10,31,63,.08);margin-bottom:12px;transition:transform .35s cubic-bezier(.2,.9,.3,1.2),box-shadow .35s,border-color .35s}
.svc-row:hover{transform:translateX(8px);border-color:rgba(47,139,255,.5);box-shadow:0 18px 40px -28px rgba(22,104,216,.7)}
.svc-row b{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:12px;background:linear-gradient(140deg,#0f56c4,#2f8bff);color:#fff}
.svc-row small{display:block;color:#5c687e;margin-top:4px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.stat b{display:block;font-family:var(--font-head);font-size:clamp(2rem,4vw,3rem);color:var(--sky)}
.stat span{font-size:.72rem;letter-spacing:.18em;color:var(--muted)}
.brand img{background:transparent}
footer a:hover{color:var(--sky)}
.filters button{border-radius:999px;padding:10px 20px;border:1px solid rgba(10,31,63,.16);background:#fff;font:inherit;font-weight:600;cursor:pointer;transition:.3s}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.filters button.active,.filters button:hover{background:linear-gradient(120deg,#2f8bff,#0f56c4);color:#fff;border-color:transparent}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1 !important;transform:none !important}
}



html{scroll-behavior:smooth}
:target{scroll-margin-top:96px}


body{animation:pageIn .7s ease both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}


.page-fx{position:fixed;inset:0;z-index:0;pointer-events:none}
.page-fx .grid{position:absolute;inset:-40%;opacity:.05;
  background-image:linear-gradient(rgba(47,139,255,.9) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(47,139,255,.9) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(circle at 50% 30%,#000,transparent 70%);
  animation:gridPan 40s linear infinite}
@keyframes gridPan{to{transform:translate3d(64px,64px,0)}}
.page-fx .grain{position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 8s steps(6) infinite}
@keyframes grainShift{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-2%)}100%{transform:translate(0,0)}}
main,footer{position:relative;z-index:1}


.section.dark,.hero,.page-head{position:relative;overflow:hidden}
.aurora span{filter:blur(90px);opacity:.55;animation-duration:26s}
.aurora::after{content:"";position:absolute;inset:-20%;
  background:conic-gradient(from 0deg,rgba(47,139,255,.22),rgba(125,184,255,.10),rgba(15,86,196,.24),rgba(47,139,255,.22));
  filter:blur(70px);opacity:.5;animation:swirl 34s linear infinite}
@keyframes swirl{to{transform:rotate(1turn)}}


.nav.scrolled{background:rgba(10,31,63,.72);backdrop-filter:blur(18px) saturate(150%);border-bottom:1px solid rgba(255,255,255,.08)}


.brand img{width:auto;height:52px;max-width:64px;object-fit:contain;background:transparent}
footer .brand img{height:46px}
.hero-art img{max-width:min(420px,80vw);height:auto;object-fit:contain;filter:drop-shadow(0 26px 50px rgba(0,0,0,.45))}
@media(max-width:640px){
  .brand img{height:40px;max-width:48px}
  .video-stage{aspect-ratio:4/3;min-height:0}
  .video-caption{left:20px;right:20px;bottom:24px;max-width:calc(100% - 40px)}
  .video-caption strong{font-size:1.32rem}
  .video-controls{right:18px;bottom:18px;gap:8px}
  .video-arrow{width:42px;height:42px}
  .video-progress{width:46px}
  .video-footer{align-items:flex-start;flex-direction:column;gap:8px;padding:14px 18px;font-size:.67rem}
}


.btn{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);
  transform:skewX(-18deg);animation:shimmer 4.5s ease-in-out infinite}
@keyframes shimmer{0%,65%{left:-60%}100%{left:130%}}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 22px 42px -16px rgba(47,139,255,.95)}


.card,.proj,.value,.svc-row{transition:transform .45s cubic-bezier(.2,.9,.3,1),box-shadow .45s ease,border-color .45s ease}
.card:hover,.proj:hover,.value:hover{transform:translateY(-6px)}
.card{position:relative}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(135deg,rgba(47,139,255,.75),transparent 55%,rgba(125,184,255,.6));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .4s ease;pointer-events:none}
.card:hover::before{opacity:1}


.reveal{transition-duration:.9s}
.grid .reveal:nth-child(2),.svc-row.reveal:nth-child(2){transition-delay:.07s}
.grid .reveal:nth-child(3){transition-delay:.14s}
.grid .reveal:nth-child(4){transition-delay:.21s}
.grid .reveal:nth-child(5){transition-delay:.28s}
.grid .reveal:nth-child(6){transition-delay:.35s}


.proj .ph img{transition:transform .8s cubic-bezier(.2,.9,.3,1),filter .5s ease}
.proj:hover .ph img{transform:scale(1.07)}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .page-fx,.aurora::after,.btn-primary::after{animation:none}
  *{animation-duration:.001s!important;transition-duration:.001s!important}
}
@media (max-width: 1024px) and (hover: none) {
  .bg-orb {
    animation: none !important;
    filter: blur(45px);
    opacity: 0.22;
  }

  .topbar,
  .panel-card,
  .article-card-main,
  .side-card,
  .topic-card {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .reveal,
  .floating,
  .lift {
    animation: none !important;
    transition: none !important;
  }

  .topic-card:hover,
  .lift:hover {
    transform: none !important;
    box-shadow: inherit !important;
  }
}
/* =========================================================
   CONTACT FORM — RESTORE ORIGINAL FLEXSOL STYLING
   ========================================================= */

.mailto-card {
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 26px;
  padding: 28px 26px 30px;
  width: 100%;
  min-height: 0;
}

.mailto-card form {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 14px;
}

.mailto-card h3 {
  color: #ffffff;
  font-size: 1.25rem;
  font-weight: 800;
  margin: 0 0 4px;
}

.mailto-card input,
.mailto-card textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;

  border: 1px solid rgba(5, 42, 43, 0.12);
  border-radius: 15px;

  background: #ffffff;
  color: #20262d;

  font: inherit;
  font-size: 1rem;

  outline: none;

  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.mailto-card input {
  height: 52px;
  padding: 0 16px;
}

.mailto-card textarea {
  min-height: 130px;
  padding: 17px 16px;
  resize: vertical;
  line-height: 1.5;
}

.mailto-card input::placeholder,
.mailto-card textarea::placeholder {
  color: #777777;
  opacity: 1;
}

.mailto-card input:focus,
.mailto-card textarea:focus {
  border-color: #2587ef;
  box-shadow: 0 0 0 3px rgba(37, 135, 239, 0.13);
}

.mailto-card .btn {
  align-self: flex-start;
  margin-top: 4px;
  min-width: 162px;
}

.mailto-note {
  margin: 4px 0 0;
  color: rgba(255, 255, 255, 0.42);
  font-size: 0.78rem;
  line-height: 1.5;
}


/* /* =========================================================
   THANK YOU SCREEN — FLEXSOL THEME
   ========================================================= */

.mailto-success {
  width: 100%;
  min-height: 350px;
  box-sizing: border-box;

  padding: 40px 30px;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  text-align: center;

  /* Same dark glass appearance as contact card */
  background: transparent;
  color: #ffffff;

  border-radius: 22px;

  animation: mailSuccessIn 0.4s ease both;
}

.mailto-success[hidden] {
  display: none !important;
}


/* Success icon */

.success-check {
  width: 58px;
  height: 58px;

  display: flex;
  align-items: center;
  justify-content: center;

  margin-bottom: 20px;

  border-radius: 50%;

  background: rgba(56, 189, 111, 0.12);
  border: 1px solid rgba(72, 211, 128, 0.28);

  box-shadow:
    0 0 0 7px rgba(56, 189, 111, 0.035);
}

.success-check svg {
  width: 26px;
  height: 26px;

  fill: none;
  stroke: #5ddd91;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Heading */

.mailto-success h3 {
  margin: 0 0 13px;

  color: #ffffff;

  font-size: 1.55rem;
  font-weight: 800;

  letter-spacing: -0.02em;
}


/* Description */

.mailto-success p {
  max-width: 440px;

  margin: 0;

  color: rgba(255, 255, 255, 0.58);

  font-size: 0.9rem;
  line-height: 1.65;
}


/* Email */

.mailto-success strong {
  color: #ffffff;
  font-weight: 700;
}


/* Send another inquiry button */

.success-again {
  margin-top: 27px;

  padding: 13px 24px;

  border: 0;
  border-radius: 999px;

  background: linear-gradient(
    135deg,
    #2b8cff,
    #1268db
  );

  color: #ffffff;

  font: inherit;
  font-size: 0.84rem;
  font-weight: 800;

  cursor: pointer;

  box-shadow:
    0 8px 22px rgba(20, 105, 220, 0.24);

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    filter 0.2s ease;
}

.success-again:hover {
  transform: translateY(-2px);

  box-shadow:
    0 11px 28px rgba(20, 105, 220, 0.32);

  filter: brightness(1.06);
}

.success-again:active {
  transform: translateY(0);
}


/* Entry animation */

@keyframes mailSuccessIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}


/* Mobile */

@media (max-width: 768px) {
  .mailto-success {
    min-height: 310px;
    padding: 34px 20px;
  }

  .success-check {
    width: 52px;
    height: 52px;
  }

  .mailto-success h3 {
    font-size: 1.4rem;
  }

  .mailto-success p {
    max-width: 330px;
    font-size: 0.84rem;
  }

  .success-again {
    padding: 12px 21px;
  }
}


/* Video loading state */
.video-loading{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:11px;padding:20px;color:#fff;background:rgba(0,0,0,.94);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-align:center;text-transform:uppercase;opacity:1;visibility:visible;transition:opacity .35s ease,visibility .35s ease;pointer-events:none}
.showcase-video.is-ready .video-loading{opacity:0;visibility:hidden}
.video-spinner{width:18px;height:18px;flex:0 0 18px;border:2px solid rgba(255,255,255,.4);border-top-color:var(--lime-soft);border-radius:50%;animation:video-spin .8s linear infinite}
.video-loading.is-error{color:#fff;background:rgba(128,27,27,.7)}
.video-loading.is-error .video-spinner{display:none}
@keyframes video-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.video-spinner{animation:none}.video-loading{transition:none}}


/* Contact Us modal */
.contact-modal[hidden]{display:none}
.contact-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:22px;overflow-y:auto}
.contact-modal-backdrop{position:absolute;inset:0;background:rgba(2,12,29,.78);backdrop-filter:blur(10px);animation:contactBackdropIn .22s ease both}
.contact-modal-card{position:relative;z-index:1;width:min(560px,100%);max-height:min(760px,calc(100vh - 44px));overflow-y:auto;padding:38px;border:1px solid rgba(125,184,255,.28);border-radius:var(--radius-lg);background:linear-gradient(145deg,#fff 0%,#eef5ff 100%);box-shadow:0 32px 90px -28px rgba(0,0,0,.7);animation:contactModalIn .28s cubic-bezier(.23,1,.32,1) both}
.contact-modal-card h2{margin:10px 38px 12px 0;font-size:clamp(1.8rem,5vw,2.55rem);color:var(--ink)}
.contact-modal-copy{max-width:48ch;margin-bottom:24px;color:#4a5870;line-height:1.7}
.contact-modal-close{position:absolute;top:18px;right:20px;display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(10,31,63,.12);border-radius:50%;background:#fff;color:var(--ink);font-size:1.65rem;line-height:1;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}
.contact-modal-close:hover{transform:rotate(90deg);background:var(--blue-600);color:#fff}
.contact-modal-actions{display:grid;gap:10px}
.contact-modal-action{display:flex;align-items:center;gap:13px;padding:15px 16px;border:1px solid rgba(10,31,63,.1);border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 12px 28px -24px rgba(10,31,63,.6);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}
.contact-modal-action:hover{transform:translateY(-2px);border-color:rgba(22,104,216,.35);background:#f8fbff;box-shadow:0 18px 34px -24px rgba(22,104,216,.65)}
.contact-modal-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#e3edff;color:var(--blue-600);font-size:1.15rem}
.contact-modal-action>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.contact-modal-action strong{font-family:var(--font-head);font-size:.98rem}
.contact-modal-action small{overflow:hidden;color:#607089;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}
.contact-modal-arrow{color:var(--blue-600);font-size:1.2rem;transition:transform .2s ease}
.contact-modal-action:hover .contact-modal-arrow{transform:translateX(4px)}
.contact-modal-return{display:block;margin:24px auto 0;border:0;background:transparent;color:#52647f;font:inherit;font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:color .2s ease}
.contact-modal-return:hover{color:var(--blue-600)}
body.modal-open{overflow:hidden}
@keyframes contactBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes contactModalIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:640px){
  .contact-modal{align-items:end;padding:12px}
  .contact-modal-card{max-height:calc(100vh - 24px);padding:30px 20px 24px;border-radius:24px}
  .contact-modal-card h2{font-size:1.85rem}
  .contact-modal-copy{font-size:.92rem}
}
@media(prefers-reduced-motion:reduce){.contact-modal-backdrop,.contact-modal-card{animation:none}.contact-modal-action,.contact-modal-close{transition:none}}


/* Contact Us hero button */
.btn-contact{background:#fff;color:var(--green-900);box-shadow:0 16px 34px -16px rgba(0,0,0,.55)}
.btn-contact:hover{background:var(--lime-soft);color:var(--green-900);box-shadow:0 22px 42px -18px rgba(125,184,255,.85)}


/* Contact modal visual refinement to match the Flexsol design system */
.btn-contact{background:linear-gradient(120deg,#7db8ff,#2f8bff);color:#071a37;border:1px solid rgba(255,255,255,.35);box-shadow:0 16px 34px -16px rgba(47,139,255,.9)}
.btn-contact:hover{background:linear-gradient(120deg,#a9d1ff,#2f8bff);color:#071a37;border-color:transparent;box-shadow:0 22px 42px -16px rgba(47,139,255,.95)}
.btn-contact:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.contact-modal-card{border-color:rgba(47,139,255,.24);box-shadow:0 32px 90px -28px rgba(4,18,43,.8)}
.contact-modal-action{border-radius:var(--radius);box-shadow:0 18px 40px -30px rgba(10,31,63,.65)}
.contact-modal-action:active{transform:translateY(0) scale(.98)}
.contact-modal-call{border-color:transparent;background:linear-gradient(120deg,#2f8bff,#0f56c4);color:#fff;box-shadow:0 18px 36px -22px rgba(15,86,196,.9)}
.contact-modal-call:hover{background:linear-gradient(120deg,#4598ff,#1668d8);color:#fff;border-color:transparent;box-shadow:0 22px 40px -22px rgba(15,86,196,.95)}
.contact-modal-call small{color:rgba(255,255,255,.78)}
.contact-modal-call .contact-modal-icon{background:rgba(255,255,255,.16);color:#fff}
.contact-modal-call .contact-modal-arrow{color:var(--lime-soft)}
.contact-modal-return{padding:10px 18px;border-radius:999px;background:#e3edff;color:var(--blue-600);transition:transform .2s ease,background .2s ease,color .2s ease}
.contact-modal-return:hover{transform:translateY(-2px);background:var(--blue-600);color:#fff}
.contact-modal-return:active{transform:scale(.97)}


/* Contact Us label */
.btn-contact,.btn-contact:hover{color:#fff}


/* Keep Contact Us modal centered on phones */
@media(max-width:640px){
  .contact-modal{align-items:center;justify-items:center;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}
  .contact-modal-card{width:100%;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);margin:auto}
}


/* Final mobile Contact Us modal centering */
@media (max-width: 640px) {
  .contact-modal {
    align-items: center;
    justify-items: center;
    padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
  }

  .contact-modal-card {
    width: 100%;
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    margin: auto;
  }
}


/* FINAL CONTACT MODAL POSITION — explicit center on desktop and mobile */
.contact-modal[hidden]{display:none !important}
.contact-modal:not([hidden]){
  position:fixed !important;
  inset:0 !important;
  z-index:9999 !important;
  display:block !important;
  width:100vw !important;
  height:100vh !important;
  height:100dvh !important;
  padding:0 !important;
  overflow:auto !important;
}

.contact-modal:not([hidden]) .contact-modal-backdrop{
  position:fixed !important;
  inset:0 !important;
  z-index:0 !important;
}

.contact-modal:not([hidden]) .contact-modal-card{
  position:absolute !important;
  z-index:1 !important;
  top:50% !important;
  left:50% !important;
  width:min(560px,calc(100vw - 32px)) !important;
  max-height:calc(100vh - 32px) !important;
  max-height:calc(100dvh - 32px) !important;
  margin:0 !important;
  overflow-y:auto !important;
  transform:translate(-50%,-50%) !important;
}

@media (max-width:640px){
  .contact-modal:not([hidden]) .contact-modal-card{
    width:calc(100vw - 24px) !important;
    max-height:calc(100vh - 24px) !important;
    max-height:calc(100dvh - 24px) !important;
  }
}


/* User-triggered video playback */
.showcase-video.is-active:not(.is-playing) .showcase-media{opacity:0}
.video-play{position:absolute;z-index:5;top:50%;left:50%;display:flex;align-items:center;gap:10px;padding:13px 20px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:linear-gradient(120deg,#2f8bff,#0f56c4);color:#fff;font:inherit;font-size:.82rem;font-weight:800;letter-spacing:.04em;cursor:pointer;box-shadow:0 18px 38px -18px rgba(0,0,0,.8);transform:translate(-50%,-50%);transition:transform .2s cubic-bezier(.2,.9,.3,1.2),box-shadow .2s ease,opacity .2s ease}
.video-play:hover{transform:translate(-50%,-54%) scale(1.03);box-shadow:0 22px 42px -18px rgba(47,139,255,.9)}
.video-play:active{transform:translate(-50%,-50%) scale(.97)}
.video-play:focus-visible{outline:3px solid var(--sky);outline-offset:4px}
.video-play-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.2);font-size:.75rem}
.showcase-video.is-playing .video-play{opacity:0;pointer-events:none}
.showcase-video.is-playing .video-loading{opacity:0;visibility:hidden}
.showcase-video.is-loading .video-play{opacity:.75;pointer-events:none}
.showcase-video.is-loading .video-play-icon{animation:video-spin .8s linear infinite}
.showcase-video.is-error .video-play{opacity:1;pointer-events:auto}
.showcase-video.is-error .video-play span:last-child{font-size:0}
.showcase-video.is-error .video-play span:last-child::after{content:"Try again";font-size:.82rem}
@media(max-width:640px){.video-play{padding:12px 16px;font-size:.74rem}.video-play-icon{width:26px;height:26px}}
@media(prefers-reduced-motion:reduce){.video-play{transition:none}.showcase-video.is-loading .video-play-icon{animation:none}}
