:root{--font:'Inter',Arial,sans-serif;--display:'Manrope',Arial,sans-serif;--mono:'JetBrains Mono',monospace;--bg:#080a12;--bg-1:#0b0d18;--panel:#111522;--panel-2:#181c2d;--grid:rgba(129,148,206,.045);--grid-strong:rgba(129,148,206,.075);--hair:rgba(158,171,221,.11);--hair-2:rgba(158,171,221,.23);--acc:#6682ff;--acc-hi:#a9b9ff;--acc-dim:#3d55be;--glow:rgba(81,105,255,.3);--text:#f5f6fb;--dim:#a0a6bb;--faint:#68708a;--maxw:1380px}
body{background:#080a12;color:var(--text)}
::selection{background:#788eff;color:#070a13}
.field .coord{background-size:72px 72px;opacity:.62}.field .coord-major{background-size:288px 288px}.field .scan,.field .sweep{display:none}.field .vig{background:radial-gradient(ellipse 75% 43% at 77% 10%,rgba(39,51,117,.19),transparent 75%),radial-gradient(ellipse 100% 100% at 50% 20%,transparent 36%,#080a12 100%)}
.wrap{padding-inline:clamp(20px,4vw,56px)}
section{padding:130px 0;scroll-margin-top:100px}
.tag,.id,.no,.cap-foot,.service-index,.service-arrow,.hero-eyebrow,.hero-foot,.hero-bottom,.visual-top,.visual-title small,.visual-metrics small,.visual-coordinate,.partners-heading .tag{font-family:var(--mono)}
.tag{font-size:11px;letter-spacing:.09em;color:#94a7ff;gap:9px}.tag::before{width:7px;height:7px;border-radius:50%;background:#7290ff;box-shadow:0 0 14px #7290ff}
.sec-head{max-width:950px;margin-bottom:52px}.sec-head .meta{justify-content:space-between;max-width:900px;margin-bottom:27px}.sec-head h2,.partners-heading h2{font-family:var(--display);font-weight:700;font-size:clamp(36px,5vw,70px);letter-spacing:-.055em;line-height:1.07}.muted-head{color:#8d95af}.sec-head p{max-width:730px;font-size:17px;line-height:1.75;color:#a3a9bd}
.topstrip{background:#101528;border-bottom-color:var(--hair)!important}.topstrip .live,.topstrip .led{color:#9cafff}.topstrip .led{background:#708bff;box-shadow:0 0 10px #708bff}.ticker{color:#828eaf}
header{background:rgba(8,10,18,.87);border-bottom:1px solid var(--hair);backdrop-filter:blur(22px)}header.scrolled{background:rgba(8,10,18,.93)}.wrap.nav{padding-block:11px}.brand{gap:14px}.brand-logo{width:59px;height:43px}.brand-caption{font-family:var(--mono);font-size:10px;letter-spacing:.09em;color:#7580a5;white-space:nowrap;border-left:1px solid var(--hair-2);padding-left:14px}.nav-links{gap:2px}.nav-links a{font-family:var(--font);font-size:12px;font-weight:500;text-transform:none;letter-spacing:0;color:#a4a9b8;padding:12px 13px}.nav-links a::after{left:13px;right:13px;bottom:7px;height:2px}.nav-links a:hover{color:#fff}.nav-cta{background:linear-gradient(115deg,#344393,#1b245a);border:1px solid #4858a5!important;border-radius:999px;color:#f6f7ff!important;margin-left:17px;padding:12px 20px!important;box-shadow:inset 0 1px rgba(255,255,255,.14),0 8px 30px rgba(46,59,167,.2);font-weight:600}.nav-cta:hover{background:#4054b4;color:#fff!important;box-shadow:0 10px 32px rgba(75,98,232,.35)}.nav-cta span{margin-left:12px;color:#adbbff}.lang-switch,.burger{border-radius:12px;background:#151a2b;color:#ccd5ff;border-color:#343b58}.mobile-menu{background:rgba(8,10,18,.98)}.mobile-menu a{font-family:var(--display);font-size:clamp(26px,7vw,42px)}
.hero{min-height:min(850px,100vh);padding:130px 0 75px;overflow:hidden;background:radial-gradient(ellipse 43% 70% at 76% 53%,rgba(36,48,118,.2),transparent 75%)}.hero::before{content:"";position:absolute;right:-14%;top:-36%;width:76vw;height:76vw;border-radius:50%;background:radial-gradient(circle,rgba(52,67,164,.13),transparent 62%);pointer-events:none}.hero-inner{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:2%;align-items:center}.hero-copy{max-width:none;position:relative;z-index:2}.hero-eyebrow{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.065em;color:#a2b2ff;white-space:nowrap;margin-bottom:36px}.signal-dot{width:7px;height:7px;border-radius:50%;background:#7792ff;box-shadow:0 0 0 5px rgba(89,119,255,.11),0 0 16px #7792ff;animation:signal 3s ease-in-out infinite}.eyebrow-line{width:28px;height:1px;background:#3d476f}@keyframes signal{50%{opacity:.5;box-shadow:0 0 0 9px rgba(89,119,255,.06),0 0 21px #7792ff}}.hero h1{font-family:var(--display);font-weight:800;font-size:clamp(50px,6.1vw,93px);line-height:.98;letter-spacing:-.075em;white-space:nowrap;margin:0 0 32px}.hero h1 .fill{color:#8ca3ff;text-shadow:0 10px 48px rgba(79,96,243,.31)}.hero-period{color:#6583ff}.hero p.lead{font-family:var(--font);font-size:clamp(15px,1.25vw,18px);line-height:1.8;max-width:590px;color:#acb1c3;margin-bottom:32px}.hero-actions{gap:12px}.btn{font-family:var(--font);font-size:13px;text-transform:none;letter-spacing:0;font-weight:600;border-radius:999px;padding:14px 22px;min-height:50px}.btn::before{border-radius:999px}.btn-primary{background:#eff1ff;color:#111527;border-color:#eff1ff}.btn-primary:hover{box-shadow:0 10px 35px rgba(154,168,255,.22)}.btn-ghost{background:#151a2a;border-color:#38405d;color:#e3e7fa}.btn-ghost:hover{color:#fff;background:#222b55}.btn-ghost::before{display:none}.hero-foot{margin-top:83px;display:flex;flex-wrap:wrap;gap:24px;font-size:10px;letter-spacing:.035em;color:#6e7895}.hero-foot span{padding-left:14px;border-left:1px solid #333e6d}.hero-bottom{position:absolute;bottom:22px;left:0;right:0;display:flex;justify-content:space-between;color:#56617e;font-family:var(--mono);font-size:9px;letter-spacing:.06em}
.hero-visual{height:530px;position:relative;min-width:0;perspective:1000px}.visual-orbit{position:absolute;border:1px solid rgba(108,130,249,.16);border-radius:50%;left:8%;right:-9%;top:0;bottom:0;transform:rotate(-23deg)}.orbit-two{inset:35px -15% 25px 0;transform:rotate(28deg);border-color:rgba(125,102,241,.09)}.visual-window{position:absolute;top:53px;left:7%;right:0;min-height:410px;border:1px solid #343d6d;border-radius:22px;background:linear-gradient(135deg,rgba(28,34,64,.97),rgba(11,15,30,.99) 62%);box-shadow:0 35px 90px rgba(0,0,0,.48),0 0 95px rgba(60,77,214,.15),inset 0 1px rgba(255,255,255,.12);overflow:hidden;transform:rotateY(-7deg) rotateX(3deg);animation:float-window 7s ease-in-out infinite}@keyframes float-window{50%{transform:translateY(-9px) rotateY(-6deg) rotateX(2deg)}}.visual-window::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.04),transparent 45%);pointer-events:none}.visual-top{height:55px;border-bottom:1px solid #343c60;display:flex;align-items:center;gap:15px;padding:0 22px;font-size:9px;letter-spacing:.06em;color:#7c88af}.window-dots{display:flex;gap:5px}.window-dots i{width:7px;height:7px;border-radius:50%;background:#59617e}.window-dots i:first-child{background:#f0808d}.window-dots i:nth-child(2){background:#e7ae6d}.window-dots i:nth-child(3){background:#78b59f}.visual-live{margin-left:auto;color:#84baaa}.visual-content{display:flex;height:354px}.visual-side{width:58px;flex:0 0 58px;border-right:1px solid #2c3454;display:flex;flex-direction:column;gap:28px;align-items:center;padding-top:25px;color:#63719e;font-size:17px}.visual-side span:first-child{color:#91a9ff}.visual-main{padding:26px;flex:1;min-width:0}.visual-title{display:flex;align-items:center;justify-content:space-between;font-family:var(--display);font-size:15px;font-weight:700}.visual-title small{font-size:9px;color:#7484b0}.visual-chart{margin-top:19px;height:170px;border:1px solid #30395b;border-radius:13px;background:linear-gradient(180deg,#1a2450,#11172d);position:relative;overflow:hidden}.chart-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(125,147,228,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(125,147,228,.065) 1px,transparent 1px);background-size:34px 34px}.visual-chart svg{position:absolute;inset:0;width:100%;height:100%}.chart-line{stroke-dasharray:500;stroke-dashoffset:500;animation:draw-line 3s 1s ease forwards}@keyframes draw-line{to{stroke-dashoffset:0}}.chart-label{position:absolute;top:14px;left:15px;color:#909ecb;font-family:var(--mono);font-size:8px;letter-spacing:.08em}.visual-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.visual-metrics>div{border:1px solid #2c3454;background:#191f37;border-radius:10px;padding:10px}.visual-metrics small{font-size:8px;color:#7380a4;display:block;white-space:nowrap}.visual-metrics b{font-size:11px;font-weight:600;display:block;margin-top:4px;color:#d9e1ff;white-space:nowrap}.visual-metrics b i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#68d6ae}.floating-card{position:absolute;border:1px solid #4c578d;background:rgba(21,28,56,.93);backdrop-filter:blur(12px);padding:15px 19px;border-radius:14px;box-shadow:0 15px 35px rgba(0,0,0,.3);display:flex;flex-direction:column;min-width:168px}.floating-card span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#344dad;color:#dce4ff;margin-bottom:11px}.floating-card b{font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:#dfe5ff}.floating-card small{font-size:10px;color:#8b98c0;margin-top:4px}.floating-card--top{right:-5%;top:4px;transform:rotate(5deg);animation:float-card 6s ease-in-out infinite}.floating-card--bottom{left:-3%;bottom:5px;transform:rotate(-4deg);animation:float-card 6s 1s ease-in-out infinite}@keyframes float-card{50%{translate:0 -8px}}.floating-card--bottom span{background:#263b5f;color:#8bddff}.visual-coordinate{position:absolute;bottom:15px;right:0;font-size:9px;color:#536187;letter-spacing:.08em}
#about{background:linear-gradient(180deg,#0b0e1b,#0a0d18)}.cap-grid{border:0;gap:14px;background:none;margin-bottom:28px}.cap{border:1px solid #303752;border-radius:18px;padding:25px 26px 27px;background:linear-gradient(145deg,#191b2c,#111522);min-height:310px}.cap:last-child{border:1px solid #303752}.cap::before{display:none}.cap:hover{background:#1c2134;border-color:#6172c0;transform:translateY(-4px)}.cap .no{font-size:10px;letter-spacing:.045em;color:#8b99c7;display:flex;justify-content:space-between}.cap .no span{font-size:16px;color:#8da3ff}.cap-symbol{display:grid;place-items:center;width:58px;height:58px;border-radius:15px;background:linear-gradient(135deg,#303d80,#1a2044);border:1px solid #4b5b9e;margin:34px 0 25px;font-family:var(--mono);font-size:24px;color:#b9c6ff;box-shadow:0 12px 38px rgba(50,74,170,.18)}.cap h3{font-family:var(--display);font-size:21px;letter-spacing:-.03em;margin-bottom:11px}.cap p{font-size:13px;color:#a7aec4;line-height:1.65}.cap-foot{margin-top:27px;padding-top:15px;border-top:1px solid #303752;color:#7483b0;font-size:9px;letter-spacing:.07em}.process-block{display:grid;grid-template-columns:.83fr 1.17fr;border:1px solid #303752;border-radius:20px;overflow:hidden;background:#111624}.process-intro{position:relative;padding:50px;background:radial-gradient(circle at 80% 90%,rgba(57,77,178,.28),transparent 53%),#161c31;overflow:hidden}.process-intro h3{font-family:var(--display);font-size:clamp(32px,3.5vw,49px);line-height:1.09;letter-spacing:-.055em;margin:30px 0 18px}.process-intro h3 span{color:#90a3ff}.process-intro p{color:#a0abc8;line-height:1.65;font-size:14px;max-width:310px}.process-beam{position:absolute;right:-20%;bottom:-100px;width:330px;height:330px;border:1px solid #344276;border-radius:50%;box-shadow:0 0 0 55px rgba(62,78,158,.05),0 0 0 110px rgba(62,78,158,.04)}.process-steps{list-style:none;padding:24px 42px}.process-steps li{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:24px 0;border-bottom:1px solid #2d344d}.process-steps li:last-child{border:0}.process-steps li>span{font-family:var(--mono);font-size:12px;color:#8295eb;padding-top:3px}.process-steps h4{font-family:var(--display);font-size:17px;margin-bottom:5px}.process-steps p{color:#929ab1;font-size:13px;line-height:1.6}
.partners{padding:50px 0 75px;background:#0b0d17;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.partners-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}.partners-heading h2{font-size:clamp(22px,2.3vw,32px);letter-spacing:-.04em;max-width:590px}.partner-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.plogo{height:95px;border:1px solid #2b3045;border-radius:13px;background:#151927;display:grid;place-items:center;padding:20px;overflow:hidden}.plogo img{max-height:50px;max-width:130px;width:auto;filter:grayscale(1) brightness(1.8);opacity:.64;transition:.3s}.plogo:hover img{filter:grayscale(0) brightness(1);opacity:1}.plogo--on-light img{background:none}.plogo .pfallback{display:none;color:#b6bfd6;font-size:12px;text-align:center}.plogo img[style*="display: none"]+.pfallback{display:block}
#portfolio{background:#0b0d18}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.service-card{position:relative;min-height:330px;border:1px solid #30364d;border-radius:18px;background:linear-gradient(145deg,#191b2b,#11141f 72%);overflow:hidden;text-decoration:none;padding:28px;display:flex;flex-direction:column;transition:transform .35s var(--ease),border-color .35s,box-shadow .35s}.service-card:hover{transform:translateY(-5px);border-color:#6275c8;box-shadow:0 20px 48px rgba(0,0,0,.2)}.service-card--wide{grid-column:span 2}.service-index{font-size:10px;color:#9ba9de;letter-spacing:.04em}.service-arrow{position:absolute;right:23px;top:20px;width:32px;height:32px;border:1px solid #434c6d;border-radius:50%;display:grid;place-items:center;color:#c2cdff;transition:transform .3s}.service-card:hover .service-arrow{transform:rotate(45deg);background:#4158a5}.service-card h3{font-family:var(--display);font-size:clamp(22px,2.45vw,32px);letter-spacing:-.045em;line-height:1.12;margin:28px 0 12px;max-width:420px}.service-card p{font-size:13px;color:#a1a9bf;line-height:1.7;max-width:390px;position:relative;z-index:2}.service-art{position:absolute;right:20px;bottom:18px;width:42%;height:125px;opacity:.8;pointer-events:none}.service-card--wide .service-art{width:39%;height:210px;right:32px;bottom:0}.service-art--web{border:1px solid #46598d;border-radius:13px 13px 0 0;background:linear-gradient(140deg,#222e64,#101729);box-shadow:0 15px 45px rgba(59,78,200,.25);transform:rotate(-8deg) translateY(20px);padding:25px 18px}.service-art--web:before{content:"";position:absolute;top:7px;left:15px;width:27px;height:5px;background:radial-gradient(circle at 2px 2px,#7089dc 2px,transparent 2.5px),radial-gradient(circle at 13px 2px,#7089dc 2px,transparent 2.5px),radial-gradient(circle at 24px 2px,#7089dc 2px,transparent 2.5px);background-repeat:no-repeat}.service-art--web span{display:block;height:9px;margin:10px 0;background:#6475b3;border-radius:4px}.service-art--web span:first-child{width:38%;height:18px;background:#818fe2}.service-art--web span:nth-child(2){width:80%}.service-art--web span:nth-child(3){width:67%}.service-art--web span:last-child{width:48%}.service-art--mobile{width:115px;right:30px;transform:rotate(10deg);height:185px;border:5px solid #425280;border-radius:20px;background:linear-gradient(160deg,#273d89,#11172d);box-shadow:0 18px 30px rgba(47,67,180,.25)}.service-art--mobile:before{content:'';display:block;width:36px;height:6px;border-radius:5px;background:#131a36;margin:7px auto 30px}.service-art--mobile i{display:block;height:20px;margin:12px;background:#7084c7;border-radius:5px}.service-art--mobile i:last-child{width:55%;background:#9caaf9}.service-art--ai{width:145px;right:15px;height:145px;border:1px solid #45599c;border-radius:50%;box-shadow:0 0 0 25px rgba(67,88,162,.08),inset 0 0 35px rgba(78,96,209,.22)}@keyframes slow-spin{to{transform:rotate(360deg)}}.service-art--ai i{position:absolute;width:7px;height:7px;border-radius:50%;background:#819bff;box-shadow:0 0 12px #819bff}.service-art--ai i:nth-child(1){left:50%;top:-3px}.service-art--ai i:nth-child(2){right:6px;top:32px}.service-art--ai i:nth-child(3){right:6px;bottom:32px}.service-art--ai i:nth-child(4){left:10px;bottom:21px}.service-art--ai i:nth-child(5){left:5px;top:26px}.service-art--bots{width:145px;right:20px;height:135px}.service-art--bots i{display:block;width:90px;height:27px;margin:9px 0;background:#364776;border:1px solid #6478b9;border-radius:10px}.service-art--bots i:nth-child(2){margin-left:38px;background:#415ba6}.service-art--bots i:last-child{width:68px}.service-art--systems{display:flex;align-items:center;justify-content:center;gap:12px;background:radial-gradient(circle,#283b7c,transparent 69%);font-family:var(--mono);font-size:9px;color:#bac9ff}.service-art--systems span{padding:18px 12px;border:1px solid #536bb5;border-radius:11px;background:#192854;box-shadow:0 0 30px rgba(55,90,212,.2)}.service-art--systems b{font-size:29px;font-weight:400;color:#8ba5ff}
.it-section{background:#080a12}.it-section .sec-head{max-width:920px}.it-project{border:1px solid #30364d;border-radius:18px;background:#101522;--project-accent:#8da5ff;box-shadow:0 18px 40px rgba(0,0,0,.11)}.it-project::before{background:linear-gradient(90deg,var(--project-accent),transparent 60%);height:1px}.it-project+.it-project{margin-top:18px}.it-project-head{padding:20px 30px;border-color:#30364d}.it-project-code{font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:#9caef6}.it-project-client{color:#8993af}.it-project-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.it-project-copy{padding:37px 30px;border-color:#30364d}.it-project-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:#9baef8}.it-project-copy h3{font-family:var(--display);font-weight:700;letter-spacing:-.05em;font-size:clamp(29px,3vw,42px);line-height:1.12}.it-project--nextcloud .it-project-copy h3,.it-project--rr-docs .it-project-copy h3{font-size:clamp(25px,2.6vw,36px)}.it-project-summary{font-size:14px;line-height:1.7;color:#acb3c6;margin-bottom:24px}.it-project-copy h4{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:#99aaf3}.it-features li{border-color:#30364d;padding:14px 0}.it-features .n{font-family:var(--mono);font-size:10px;color:#9aaeff}.it-features b{font-size:14px;color:#e9ecf8}.it-features p{font-size:12px;color:#969fb6}.it-gallery,.it-gallery--portrait,.it-project--kotacu .it-gallery{background:#0d1120}.it-gallery-main{border-color:#343d5c;border-radius:10px;background:#090c16}.it-gallery-open{background:rgba(17,23,46,.91);border-radius:8px 0 0 0}.it-thumb{border-color:#303952;background:#181d30;border-radius:9px;color:#a0aac3}.it-thumb:hover,.it-thumb[aria-pressed=true]{border-color:#8197f6;color:#fff}.it-project-link{color:#b7c5fa}
.plogo{min-height:0}.plogo img,.plogo--on-light img{width:auto;height:auto;max-width:130px;max-height:50px;padding:0;transform:none;background:none}
.team-section{background:#0c0e19}.team-grid{gap:12px;padding:0;background:none}.team-member{border:1px solid #30364d;border-radius:16px;background:linear-gradient(145deg,#171a2b,#121522);padding:28px;min-height:315px;overflow:hidden}.team-member::before{left:28px;background:#839bff}.team-member-photo{width:114px;height:122px;border-color:#454d6b;border-radius:12px;filter:grayscale(.25);margin-bottom:28px}.team-member h3{font-family:var(--display);letter-spacing:-.03em}.team-member-role{color:#a8b5e7;font-size:12px}
#contact{background:radial-gradient(ellipse 70% 80% at 90% 45%,rgba(55,68,168,.14),transparent 70%),#080a12}.contact-wrap{border-color:#414b77;border-radius:22px;background:linear-gradient(125deg,#1b2343,#101523 70%)}.contact-wrap .ticks{display:none}.contact-info{padding:clamp(32px,5vw,72px)}.contact-info h2{font-family:var(--display);font-size:clamp(35px,4vw,56px);letter-spacing:-.06em}.contact-info p{color:#a8b2cd;line-height:1.7}.contact-actions{border-color:#3e486f;border-radius:14px;overflow:hidden;background:rgba(12,18,39,.35)}.contact-actions a{border-color:#354063}.contact-actions a:hover{background:#202b54}.contact-actions a .ci{border-color:#465583;border-radius:10px;background:#202d5b}.contact-actions a .ci svg{stroke:#abbcff}.contact-actions a .ct b{font-family:var(--font);font-size:13px}.contact-actions a .ct span{color:#8794b7}.contact-actions a .arr{color:#a4b6ff}
footer{background:#090b14;border-color:#222945}.foot .fl>div{border-color:#768dff}.foot .fl div b{font-family:var(--display)}.foot .fl div span{color:#8292ca;font-family:var(--mono);font-size:9px}.foot-coords{font-family:var(--mono);letter-spacing:.03em}
:focus-visible{outline:2px solid #aec0ff;outline-offset:3px}
@media(max-width:1180px){.nav-links{display:none}.burger{display:flex}.hero-inner{grid-template-columns:1fr 1fr}.hero h1{font-size:clamp(44px,6vw,70px)}.hero-visual{height:450px}.visual-window{left:0;min-height:390px}.visual-content{height:334px}.floating-card--top{right:-3%}.service-card--wide .service-art{opacity:.55}}
@media(max-width:960px){section{padding:90px 0}.hero{padding:135px 0 70px;min-height:auto}.hero-inner{grid-template-columns:1fr}.hero h1{font-size:clamp(50px,9vw,84px)}.hero p.lead{max-width:690px}.hero-foot{margin-top:45px}.hero-visual{height:470px;margin-top:55px;max-width:680px;width:100%;justify-self:center}.hero-bottom{position:relative;bottom:auto;margin-top:36px}.cap-grid{grid-template-columns:repeat(3,1fr);gap:10px}.cap{padding:22px;min-height:350px}.process-intro{padding:36px}.process-steps{padding:16px 28px}.partner-grid{grid-template-columns:repeat(5,1fr)}.plogo{padding:12px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card--wide{grid-column:span 1}.service-card--wide .service-art{width:46%;height:120px;right:10px;opacity:.4}.service-card{min-height:330px}.service-card h3{max-width:290px}.it-project-grid{grid-template-columns:1fr}.it-project-copy{border-right:0;border-bottom:1px solid #30364d}.contact-info{grid-template-columns:1fr 1fr;gap:30px}}
@media(max-width:700px){.brand-caption{display:none}.hero h1{font-size:clamp(42px,10.1vw,72px)}.hero-eyebrow{font-size:8px;flex-wrap:wrap;white-space:normal}.hero-visual{height:390px}.visual-window{top:30px;right:4%;left:4%;min-height:340px}.visual-content{height:285px}.visual-main{padding:15px}.visual-chart{height:137px}.visual-metrics small{font-size:6px}.visual-metrics b{font-size:9px}.floating-card{min-width:130px;padding:10px}.floating-card--top{right:0}.floating-card--bottom{left:0;bottom:-8px}.visual-coordinate{display:none}.cap-grid{grid-template-columns:1fr}.cap{min-height:0}.cap-symbol{margin:23px 0}.process-block{grid-template-columns:1fr}.process-intro{min-height:260px}.partners-heading{display:block}.partners-heading h2{margin-top:14px}.partner-grid{grid-template-columns:repeat(2,1fr)}.plogo{height:80px}.service-grid{grid-template-columns:1fr}.service-card{min-height:300px}.service-card--wide .service-art{height:145px;width:40%;opacity:.65}.contact-info{grid-template-columns:1fr}.team-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.wrap{padding-inline:20px}.hero{padding-top:120px}.hero h1{font-size:clamp(36px,10.3vw,55px);letter-spacing:-.075em}.hero p.lead{font-size:14px}.hero-actions .btn{padding:12px 17px;font-size:12px}.hero-foot{gap:12px;font-size:8px}.hero-foot span{padding-left:8px}.hero-visual{height:315px;margin-top:45px}.visual-window{top:25px;min-height:270px;border-radius:15px}.visual-top{height:38px;padding:0 12px;font-size:7px}.visual-content{height:230px}.visual-side{width:36px;flex-basis:36px;font-size:12px;gap:17px}.visual-title{font-size:11px}.visual-chart{height:110px;margin-top:12px}.visual-metrics{gap:4px;margin-top:7px}.visual-metrics>div{padding:5px}.visual-metrics small{font-size:5px}.visual-metrics b{font-size:7px}.floating-card{display:none}.hero-bottom{font-size:7px}.sec-head h2{font-size:clamp(32px,8vw,46px)}.sec-head p{font-size:14px}.process-intro{padding:30px}.process-steps{padding:10px 25px}.process-steps li{grid-template-columns:37px 1fr}.partners-heading h2{font-size:23px}.service-card{min-height:285px;padding:23px}.service-card h3{font-size:26px}.service-art{opacity:.48}.service-card--wide .service-art{opacity:.4}.it-project-head{padding:18px 20px}.it-project-copy{padding:25px 20px}.it-project-copy h3{font-size:31px}.it-gallery{padding:12px}.team-grid{grid-template-columns:1fr}.team-member{min-height:0;display:block}.team-member-photo{margin-bottom:18px}.plogo{min-height:0}.plogo img,.plogo--on-light img{width:auto;height:auto;padding:0}.contact-info{padding:30px 22px}}
@media(prefers-reduced-motion:reduce){.signal-dot,.visual-window,.floating-card,.chart-line,.service-art--ai:after{animation:none!important}.reveal{opacity:1;transform:none}}
.project-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:55px}.showcase-card{display:block;text-decoration:none;min-width:0}.showcase-image{height:270px;position:relative;border:1px solid #333b60;border-radius:17px;background:#151a2a;overflow:hidden}.showcase-image::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,10,20,.66),transparent 47%),linear-gradient(125deg,rgba(38,53,116,.15),transparent);pointer-events:none}.showcase-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center;filter:saturate(.74) brightness(.86);transition:transform .6s var(--ease),filter .6s var(--ease)}.showcase-card:hover .showcase-image img{transform:scale(1.045);filter:saturate(1) brightness(1)}.showcase-image span{position:absolute;bottom:18px;left:18px;z-index:2;padding:7px 12px;border-radius:99px;background:rgba(17,22,39,.83);backdrop-filter:blur(9px);border:1px solid #49567f;color:#e5eaff;font:9px var(--mono);letter-spacing:.04em}.showcase-copy{display:flex;align-items:start;justify-content:space-between;gap:18px;padding:19px 5px 0}.showcase-copy h3{font-family:var(--display);font-size:21px;letter-spacing:-.04em;line-height:1.25;margin-bottom:5px}.showcase-copy p{font-size:13px;color:#939db5}.showcase-arrow{display:grid;place-items:center;flex:none;width:31px;height:31px;border:1px solid #414d72;border-radius:50%;color:#b7c6ff;transition:.3s}.showcase-card:hover .showcase-arrow{background:#3c51a6;transform:rotate(45deg)}.case-details-label{display:flex;justify-content:space-between;align-items:center;margin:0 0 17px;padding:0 3px;color:#8d9bc5;font:10px var(--mono);letter-spacing:.07em}
@media(max-width:700px){.project-showcase{gap:12px}.showcase-image{height:190px}.showcase-copy h3{font-size:17px}.showcase-copy p{font-size:11px}}
@media(max-width:560px){.project-showcase{grid-template-columns:1fr;margin-bottom:40px}.showcase-image{height:215px}.showcase-copy{padding-top:13px}.showcase-copy h3{font-size:18px}}
.lang-switch{width:42px;height:38px;min-width:0;padding:4px;border:0;border-radius:7px;background:transparent;display:grid;place-items:center;cursor:pointer;transition:opacity .2s,transform .2s}.lang-switch:hover{background:transparent;border:0;opacity:.78;transform:translateY(-1px)}.lang-switch:focus-visible{background:transparent;border:0;outline:2px solid #aec0ff;outline-offset:2px}.lang-switch img{display:block;width:30px;height:20px;object-fit:cover;border-radius:2px;box-shadow:0 3px 10px rgba(0,0,0,.25)}
.partners{padding:76px 0 88px}.partners-heading{display:block;text-align:center;margin:0 0 34px}.partners-heading h2{max-width:none;font-size:clamp(31px,3.5vw,48px);letter-spacing:-.05em}.partner-carousel{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:16px}.partner-viewport{min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}.partner-viewport::-webkit-scrollbar{display:none}.partner-viewport:focus-visible{outline:2px solid #9db0ff;outline-offset:4px;border-radius:10px}.partner-track{display:flex;gap:14px}.partner-track .plogo{flex:0 0 calc((100% - 28px)/3);height:116px;scroll-snap-align:start;min-width:0;padding:20px}.partner-track .plogo img{max-width:170px;max-height:64px}.partner-arrow{width:42px;height:42px;border:1px solid #3b456d;border-radius:50%;background:#171d32;color:#c6d2ff;font:20px var(--font);cursor:pointer;transition:background .25s,border-color .25s,transform .25s}.partner-arrow:hover{background:#2a3974;border-color:#8197e5;transform:scale(1.05)}.partner-arrow:focus-visible{outline:2px solid #aec0ff;outline-offset:3px}
@media(max-width:960px){.partner-track .plogo{flex-basis:calc((100% - 14px)/2)}}
@media(max-width:560px){.partners{padding:62px 0 70px}.partners-heading{margin-bottom:26px}.partner-carousel{grid-template-columns:34px minmax(0,1fr) 34px;gap:7px}.partner-arrow{width:34px;height:34px;font-size:17px}.partner-track{gap:10px}.partner-track .plogo{flex-basis:76%;height:96px;padding:12px}.partner-track .plogo img{max-width:130px;max-height:55px}}
/* Navigation and language control */
.wrap.nav{padding-block:14px}.brand-logo{width:67px;height:auto}.brand-caption{font-size:11px}.nav-links a{font-size:15px;padding:12px 13px}.nav-cta{font-size:14px!important;padding:13px 21px!important}.lang-switch{perspective:420px}.lang-switch img{backface-visibility:hidden;transform-origin:center}.lang-switch.is-flipping img{animation:flag-flip .56s ease-in-out both}@keyframes flag-flip{0%{transform:rotateY(0)}49%{transform:rotateY(90deg)}51%{transform:rotateY(-90deg)}100%{transform:rotateY(0)}}
/* Partners: larger original-colour logos and borderless controls */
.partners{padding:78px 0 88px}.partner-viewport{scroll-snap-type:none}.partner-track .plogo{height:154px;border:0;background:#171b2a;border-radius:17px}.partner-track .plogo--on-light{background:#e9edf5}.partner-track .plogo img,.partner-track .plogo--on-light img{max-width:230px;max-height:96px;width:auto;height:auto;filter:none;opacity:1;transform:none;transition:transform .3s ease}.partner-track .plogo:hover img{filter:none;opacity:1;transform:scale(1.06)}.partner-arrow{border:0;background:transparent;box-shadow:none;color:#a8b9fa;font-size:28px}.partner-arrow:hover{border:0;background:transparent;color:#fff;transform:translateX(-3px)}.partner-arrow--next:hover{transform:translateX(3px)}
/* Solutions: equal-height cards that form a slow rotating accordion */
.service-grid{display:flex;gap:12px;align-items:stretch;overflow:hidden}.service-card,.service-card--wide{grid-column:auto;flex:1 1 0;min-width:0;min-height:0;height:430px;padding:26px 22px;border-radius:17px;transition:flex-grow 1.1s cubic-bezier(.22,1,.36,1),border-color .55s,background .55s,transform .55s;transform:none}.service-card:hover{transform:none}.service-card.is-active,.service-card:hover,.service-card:focus-visible{flex-grow:2.9;border-color:#6477c9;background:linear-gradient(145deg,#1d2441,#111625 75%);box-shadow:inset 0 1px rgba(189,200,255,.08),0 20px 46px rgba(0,0,0,.15)}.service-card h3{font-size:clamp(17px,1.45vw,23px);margin:40px 0 14px;max-width:100%;line-height:1.2;transition:font-size .6s}.service-card.is-active h3,.service-card:hover h3,.service-card:focus-visible h3{font-size:clamp(26px,2.35vw,34px)}.service-card p{font-size:13px;opacity:0;max-height:0;overflow:hidden;transform:translateY(8px);transition:opacity .45s,max-height .75s,transform .45s}.service-card.is-active p,.service-card:hover p,.service-card:focus-visible p{opacity:1;max-height:150px;transform:none}.service-card .service-index{display:block;white-space:normal;line-height:1.5;max-width:calc(100% - 28px);font-size:9px}.service-card .service-arrow{right:16px;top:19px;width:25px;height:25px;font-size:12px}.service-card .service-art,.service-card--wide .service-art{right:10px;bottom:9px;width:78%;height:132px;opacity:.32;transition:opacity .6s,transform .8s}.service-card.is-active .service-art,.service-card:hover .service-art,.service-card:focus-visible .service-art{opacity:.83;transform:scale(1.02)}.service-card .service-art--mobile{width:95px;height:165px;right:17px}.service-card .service-art--ai{width:120px;height:120px;right:12px}.service-card .service-art--systems{width:95%;font-size:8px;gap:5px}.service-card .service-art--systems span{padding:11px 6px}
@media(max-width:1180px){.service-grid{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:8px}.service-grid::-webkit-scrollbar{display:none}.service-card,.service-card--wide{flex:0 0 min(72vw,390px);height:385px;scroll-snap-align:start}.service-card.is-active,.service-card:hover,.service-card:focus-visible{flex-grow:0}.service-card h3{font-size:25px}.service-card.is-active h3,.service-card:hover h3,.service-card:focus-visible h3{font-size:28px}.service-card .service-art,.service-card--wide .service-art{opacity:.65}.partner-track .plogo{height:138px}.partner-track .plogo img,.partner-track .plogo--on-light img{max-width:200px;max-height:82px}}
@media(max-width:560px){.wrap.nav{padding-block:11px}.brand-logo{width:62px}.service-card,.service-card--wide{flex-basis:82vw;height:355px;padding:24px 20px}.service-card h3{font-size:23px;margin-top:31px}.service-card.is-active h3{font-size:25px}.service-card .service-art,.service-card--wide .service-art{height:118px}.partner-track .plogo{height:112px}.partner-track .plogo img,.partner-track .plogo--on-light img{max-width:165px;max-height:68px}.partner-arrow{font-size:24px}}
@media(prefers-reduced-motion:reduce){.lang-switch.is-flipping img{animation:none}.service-card,.service-card p,.service-card h3,.service-card .service-art{transition:none}}

/* Motion controls short entrances; content remains visible without JavaScript or CDN access. */
.reveal{opacity:1;transform:none}
.lang-switch.is-flipping img{animation-duration:.46s}
.visual-window,.floating-card,.service-art--ai:after{animation:none}
.chart-line{animation:none;stroke-dashoffset:0}
.mobile-menu{transition:opacity .3s ease,visibility .3s ease}
.mobile-menu a{transition:opacity .3s ease,transform .3s ease,color .2s ease}
.service-card,.service-card--wide{transition:flex-grow .45s cubic-bezier(.22,1,.36,1),border-color .3s,background .3s,box-shadow .3s}
.service-card h3{transition:font-size .35s ease}
.service-card p{transition:opacity .3s ease,max-height .4s ease,transform .3s ease}
.service-card .service-art,.service-card--wide .service-art{transition:opacity .35s ease,transform .4s ease}
.showcase-image img{transition:transform .4s ease,filter .4s ease}
.btn:hover,.nav-cta:hover,.partner-arrow:hover,.partner-arrow--next:hover{transform:none}
.it-project[hidden]{display:none!important}
.project-filters{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 26px}
.project-filters button{appearance:none;border:1px solid #3a4469;border-radius:999px;background:#171c2d;color:#b7c2e1;padding:10px 17px;font:500 12px var(--font);cursor:pointer;transition:background .25s,border-color .25s,color .25s,transform .25s}
.project-filters button:hover{border-color:#8498ef;color:#fff;transform:translateY(-2px)}
.project-filters button.is-active{background:#384b9e;border-color:#667ce0;color:#fff}
.project-filters button:focus-visible{outline:2px solid #b3c3ff;outline-offset:3px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media(max-width:560px){.project-filters{gap:7px}.project-filters button{font-size:11px;padding:9px 12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.visual-window,.floating-card,.chart-line,.service-art--ai:after{animation:none!important}.service-card,.service-card h3,.service-card p,.service-card .service-art,.showcase-image img,.project-filters button,.mobile-menu,.mobile-menu a{transition:none!important}}

/* Solutions form a compact fan and open into five readable cards on hover/focus. */
#portfolio{overflow:hidden}
.service-grid{position:relative;display:block;height:465px;max-width:1180px;margin:12px auto 0;overflow:visible}
.service-grid .service-card,.service-grid .service-card--wide{position:absolute;top:40px;left:50%;display:flex;flex-direction:column;flex:none;width:238px;height:365px;min-height:0;min-width:0;margin-left:-119px;padding:25px 21px 20px;border:0;border-radius:10px;overflow:hidden;color:#fff;text-decoration:none;box-shadow:0 24px 48px rgba(0,0,0,.32);transform:translate(var(--closed-x),var(--closed-y)) rotate(var(--closed-r));transition:transform .34s cubic-bezier(.22,1,.36,1);will-change:transform}
.service-grid .service-card:nth-child(1){--closed-x:-202px;--closed-y:24px;--closed-r:-12deg;--open-x:-450px;--open-y:24px;--open-r:-8deg;z-index:1;background:linear-gradient(145deg,#9b62df,#6536bd 70%,#492489)}
.service-grid .service-card:nth-child(2){--closed-x:-103px;--closed-y:2px;--closed-r:-6deg;--open-x:-225px;--open-y:-5px;--open-r:-4deg;z-index:2;background:linear-gradient(145deg,#ffd95e,#e7aa2b 65%,#c98417);color:#291c31}
.service-grid .service-card:nth-child(3){--closed-x:0px;--closed-y:-14px;--closed-r:0deg;--open-x:0px;--open-y:-14px;--open-r:0deg;z-index:5;background:linear-gradient(145deg,#6073ff,#3448de 65%,#2536ad)}
.service-grid .service-card:nth-child(4){--closed-x:103px;--closed-y:2px;--closed-r:6deg;--open-x:225px;--open-y:-5px;--open-r:4deg;z-index:3;background:linear-gradient(145deg,#f0b4ba,#d77a9c 62%,#aa4e82);color:#351c3b}
.service-grid .service-card:nth-child(5){--closed-x:202px;--closed-y:24px;--closed-r:12deg;--open-x:450px;--open-y:24px;--open-r:8deg;z-index:1;background:linear-gradient(145deg,#9154e5,#642ab8 62%,#3e198b)}
.service-grid .service-card::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(145deg,transparent 0 25px,rgba(255,255,255,.075) 26px 29px,transparent 30px 54px);pointer-events:none}
.service-grid .service-card::after{content:"";position:absolute;right:16px;top:14px;width:24px;height:24px;background:rgba(255,255,255,.72);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);transform:rotate(-12deg);pointer-events:none}
.service-grid .service-card:nth-child(2)::after,.service-grid .service-card:nth-child(4)::after{color:rgba(56,32,82,.67)}
.service-grid:not(.is-interactive):hover .service-card,.service-grid:not(.is-interactive):focus-within .service-card{transform:translate(var(--open-x),var(--open-y)) rotate(var(--open-r))}
.service-grid:not(.is-interactive):hover .service-card:hover,.service-grid:not(.is-interactive):focus-within .service-card:focus-visible{z-index:12;transform:translate(var(--open-x),calc(var(--open-y) - 22px)) rotate(var(--open-r)) scale(1.055);box-shadow:0 35px 65px rgba(0,0,0,.44)}
.service-grid .service-card:focus-visible{outline:3px solid #e8edff;outline-offset:5px}
.service-grid .service-index{display:none}
.service-grid .service-card h3,.service-grid .service-card:hover h3,.service-grid .service-card:focus-visible h3{position:relative;z-index:2;max-width:100%;min-width:0;margin:6px 0 0;font-family:var(--display);font-size:clamp(19px,1.45vw,21px);font-weight:800;line-height:1.14;letter-spacing:-.045em;overflow-wrap:anywhere;hyphens:auto;color:inherit;transition:none}
.service-grid .service-card p,.service-grid .service-card:hover p,.service-grid .service-card:focus-visible p{position:relative;z-index:2;max-width:calc(100% - 18px);max-height:none;margin-top:auto;padding:0;opacity:1;overflow:visible;transform:none;color:inherit;font-size:11px;line-height:1.42;text-shadow:0 1px 8px rgba(21,17,55,.16);transition:none}
.service-grid .service-card .service-arrow{top:auto;right:15px;bottom:14px;width:22px;height:22px;border:0;border-radius:0;background:none;color:inherit;font-size:20px;transform:none;transition:transform .25s ease}
.service-grid .service-card:hover .service-arrow{background:none;transform:translate(3px,-3px)}
.service-grid .service-card .service-art,.service-grid .service-card--wide .service-art{right:10px;bottom:90px;width:65%;height:115px;opacity:.6;transition:opacity .35s ease,transform .35s ease}
.service-grid .service-card:hover .service-art,.service-grid .service-card:focus-visible .service-art{opacity:.9}
.service-grid .service-card .service-art--web{height:100px;transform:rotate(-8deg) translateY(6px)}
.service-grid .service-card .service-art--mobile{width:86px;height:145px;right:22px;bottom:80px;transform:rotate(9deg)}
.service-grid .service-card .service-art--ai{width:116px;height:116px;right:24px;bottom:84px}
.service-grid .service-card .service-art--bots{width:135px;height:124px;right:8px;bottom:85px}
.service-grid .service-card .service-art--systems{width:96%;height:100px;right:2%;bottom:90px;color:#f1e5ff}
@media(min-width:1360px){.service-grid .service-card:nth-child(1){--open-x:-540px}.service-grid .service-card:nth-child(2){--open-x:-270px}.service-grid .service-card:nth-child(4){--open-x:270px}.service-grid .service-card:nth-child(5){--open-x:540px}}
@media(max-width:1180px) and (min-width:961px){.service-grid .service-card,.service-grid .service-card--wide{width:210px;margin-left:-105px}.service-grid .service-card:nth-child(1){--closed-x:-175px;--open-x:-350px}.service-grid .service-card:nth-child(2){--closed-x:-88px;--open-x:-175px}.service-grid .service-card:nth-child(4){--closed-x:88px;--open-x:175px}.service-grid .service-card:nth-child(5){--closed-x:175px;--open-x:350px}.service-grid .service-card h3{font-size:18px}}
@media(max-width:960px){.service-grid{display:flex;height:auto;max-width:none;gap:14px;overflow-x:auto;overflow-y:hidden;padding:18px 6px 34px;scroll-snap-type:x mandatory;scrollbar-width:none}.service-grid::-webkit-scrollbar{display:none}.service-grid .service-card,.service-grid .service-card--wide,.service-grid:hover .service-card,.service-grid:focus-within .service-card,.service-grid:hover .service-card:hover,.service-grid:focus-within .service-card:focus-visible{position:relative;top:auto;left:auto;flex:0 0 230px;width:230px;height:350px;margin-left:0;transform:none;scroll-snap-align:center}.service-grid .service-card:hover,.service-grid .service-card:focus-visible{transform:translateY(-7px)!important}.service-grid .service-card h3{font-size:20px}}
@media(max-width:560px){.service-grid .service-card,.service-grid .service-card--wide,.service-grid:hover .service-card,.service-grid:focus-within .service-card{flex-basis:min(76vw,290px);width:min(76vw,290px);height:365px;padding:25px 21px 20px}.service-grid .service-card h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.service-grid .service-card,.service-grid .service-card .service-art,.service-grid .service-card .service-arrow{transition:none!important}}

/* Keep the fan within the site's blue and violet palette. */
.service-grid .service-card,.service-grid .service-card--wide{border:1px solid rgba(149,169,244,.28);box-shadow:0 24px 52px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.08)}
.service-grid .service-card:nth-child(1){background:linear-gradient(155deg,#483575 0%,#2c2856 54%,#15192f 100%);color:#f5f6ff}
.service-grid .service-card:nth-child(2){background:linear-gradient(155deg,#354c8a 0%,#23365e 58%,#121a30 100%);color:#f5f6ff}
.service-grid .service-card:nth-child(3){background:linear-gradient(155deg,#5068bc 0%,#344b9a 48%,#182550 100%);color:#fff}
.service-grid .service-card:nth-child(4){background:linear-gradient(155deg,#345276 0%,#233951 56%,#141d30 100%);color:#f5f6ff}
.service-grid .service-card:nth-child(5){background:linear-gradient(155deg,#4a387b 0%,#2c2858 56%,#15182e 100%);color:#f5f6ff}
.service-grid .service-card::before{background:repeating-linear-gradient(145deg,transparent 0 27px,rgba(177,195,255,.065) 28px 30px,transparent 31px 57px)}
.service-grid .service-card::after,.service-grid .service-card:nth-child(2)::after,.service-grid .service-card:nth-child(4)::after{color:#aabaff}
.service-grid .service-card p,.service-grid .service-card:hover p,.service-grid .service-card:focus-visible p{color:#d4defb;text-shadow:0 1px 8px rgba(0,0,0,.3)}
.service-grid .service-card .service-arrow{color:#dce6ff}

/* The hovered card takes the foreground while its neighbours rest in two stacks. */
.service-grid.is-focused .service-card,.service-grid.is-focused .service-card:hover,.service-grid.is-focused .service-card:focus-visible{transform:translate(var(--focus-x),var(--focus-y)) rotate(var(--focus-r)) scale(var(--focus-scale));box-shadow:0 24px 52px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.08)}
.service-grid.is-focused .service-card.is-selected,.service-grid.is-focused .service-card.is-selected:hover,.service-grid.is-focused .service-card.is-selected:focus-visible{z-index:20;box-shadow:0 38px 78px rgba(0,0,0,.5),0 0 48px rgba(95,119,234,.16)}
@media(max-width:960px){.service-grid.is-focused .service-card,.service-grid.is-focused .service-card:hover,.service-grid.is-focused .service-card:focus-visible{transform:none!important}.service-grid.is-focused .service-card.is-selected{box-shadow:0 24px 52px rgba(0,0,0,.42)}}

/* Team: compact profiles keep portraits close to their original display size. */
.team-section{background:linear-gradient(180deg,#0b0d18 0%,#0d1120 100%)}
.team-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0;background:none}
.team-grid .team-member{display:grid;grid-template-columns:132px minmax(0,1fr);grid-template-rows:auto 1fr;align-items:start;column-gap:20px;min-width:0;min-height:218px;padding:24px;border:1px solid #303b5b;border-radius:16px;overflow:hidden;background:linear-gradient(145deg,#171d30,#111625);box-shadow:0 10px 28px rgba(0,0,0,.1);transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
.team-grid .team-member::before{content:none}
.team-grid .team-member-photo{grid-column:1;grid-row:1/3;align-self:start;width:132px;height:132px;margin:0;border:1px solid #3b486d;border-radius:11px;background:linear-gradient(145deg,#26324e,#131b30);filter:none;overflow:hidden}
.team-grid .team-member-photo img,.team-grid .team-member--six .team-member-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 32%;filter:none;transform:none;transition:none}
.team-grid .team-member h3{grid-column:2;grid-row:1;min-width:0;width:min-content;max-width:100%;align-self:end;margin:5px 0 10px;font-family:var(--display);font-size:22px;font-weight:750;line-height:1.15;letter-spacing:-.04em;color:#f7f8ff;overflow-wrap:normal}
.team-grid .team-member-role{grid-column:2;grid-row:2;min-width:0;align-self:start;margin:0;color:#aebce8;font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}
@media(hover:hover) and (pointer:fine){.team-grid .team-member:hover{transform:translateY(-3px);border-color:#6178c4;box-shadow:0 19px 38px rgba(0,0,0,.2)}}
@media(max-width:1100px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.team-grid{grid-template-columns:1fr}}
@media(max-width:520px){.team-grid{gap:13px}.team-grid .team-member{grid-template-columns:104px minmax(0,1fr);column-gap:15px;min-height:178px;padding:17px}.team-grid .team-member-photo{width:104px;height:104px}.team-grid .team-member h3{margin:3px 0 8px;font-size:clamp(16px,4.7vw,19px)}.team-grid .team-member-role{font-size:12.5px;line-height:1.42}}
@media(prefers-reduced-motion:reduce){.team-grid .team-member{transition:none!important}.team-grid .team-member:hover{transform:none!important}}

.process-intro h3{margin-top:0}

/* Hover feedback changes only paint and the small arrow; links keep a stable hit area. */
.hero-actions .btn{transition:background-color .24s ease,border-color .24s ease,color .24s ease,box-shadow .24s ease}
.hero-actions .btn > span:last-child,.nav-cta > span{display:inline-block;transition:transform .24s ease,color .24s ease}
.hero-actions .btn:hover > span:last-child,.nav-cta:hover > span{transform:translateX(3px)}
.nav-links a:not(.nav-cta){transition:color .22s ease}
.nav-links a.nav-cta{transition:border-color .24s ease,box-shadow .24s ease,color .24s ease}
.nav-cta:hover{background:linear-gradient(115deg,#344393,#1b245a);border-color:#7289ec!important;box-shadow:0 8px 30px rgba(75,98,232,.3)}
.contact-actions a{transition:background-color .24s ease,color .24s ease}
.contact-actions a:hover{padding-left:20px}
@media(max-width:560px){.contact-actions a:hover{padding-left:12px}}

/* Small, repeating accents keep these sections alive without moving their text. */
.chart-line{stroke:#4e72bb;stroke-width:2.6;stroke-dasharray:none;stroke-dashoffset:0}
.chart-line-highlight{stroke:#9bd5ff;stroke-width:3.8;stroke-linecap:round;stroke-dasharray:var(--chart-length);stroke-dashoffset:var(--chart-length);filter:drop-shadow(0 0 3px #62aeff) drop-shadow(0 0 8px rgba(69,133,255,.8));animation:chart-fill 4.8s cubic-bezier(.3,.05,.2,1) infinite}
@keyframes chart-fill{0%{stroke-dashoffset:var(--chart-length);opacity:1}70%,84%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}

#about .cap{transition:transform .32s ease,border-color .32s ease,box-shadow .32s ease}
#about .cap:hover{background:linear-gradient(145deg,#191b2c,#111522);box-shadow:0 18px 40px rgba(34,50,112,.17)}

.team-grid .team-member::before{content:"";display:block;left:0;top:0;width:38%;height:2px;background:linear-gradient(90deg,transparent,#8da7ff,transparent);box-shadow:0 0 12px rgba(134,164,255,.55);pointer-events:none;transform:translateX(-110%);animation:team-glint 8.4s ease-in-out infinite}
.team-grid .team-member:nth-child(2)::before{animation-delay:-1.4s}
.team-grid .team-member:nth-child(3)::before{animation-delay:-2.8s}
.team-grid .team-member:nth-child(4)::before{animation-delay:-4.2s}
.team-grid .team-member:nth-child(5)::before{animation-delay:-5.6s}
.team-grid .team-member:nth-child(6)::before{animation-delay:-7s}
@keyframes team-glint{0%,9%{transform:translateX(-110%)}31%,100%{transform:translateX(370%)}}

@media(prefers-reduced-motion:reduce){.chart-line-highlight,#about .cap::after,.team-grid .team-member::before{animation:none!important}.chart-line-highlight{display:none}#about .cap:hover{transform:none}}

/* Mobile menu: a nine-tile icon turns into a dotted close mark. */
.burger{flex:none;width:50px;height:50px;padding:0;gap:0;border:0;border-radius:0;background:transparent;box-shadow:none;transition:transform .22s ease;touch-action:manipulation}
.burger .burger-grid{display:grid;grid-template-columns:repeat(3,8px);grid-auto-rows:8px;gap:4px;width:32px;height:32px;background:none;transform:none;transition:transform .46s cubic-bezier(.22,1,.36,1)}
.burger .burger-grid>span{display:block;width:8px;height:8px;border:0;border-radius:2.5px;background:#fff;opacity:1;transform:none;transition:transform .38s cubic-bezier(.22,1.25,.36,1),opacity .24s ease}
.burger .burger-grid>span:nth-child(2),.burger .burger-grid>span:nth-child(4),.burger .burger-grid>span:nth-child(6),.burger .burger-grid>span:nth-child(8){transition-delay:.035s}
.burger .burger-grid>span:nth-child(3),.burger .burger-grid>span:nth-child(7){transition-delay:.07s}
.burger .burger-grid>span:nth-child(5){transition-delay:.105s}
.burger.open{background:transparent;box-shadow:none}
.burger.open>span.burger-grid{transform:rotate(90deg)}
.burger.open .burger-grid>span{transform:rotate(45deg) scale(1.08);opacity:1}
.burger.open .burger-grid>span:nth-child(even){transform:rotate(90deg) scale(0);opacity:0}
.burger:active{transform:scale(.94)}
.burger:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(hover:hover) and (pointer:fine){.burger:not(.open):hover>.burger-grid{transform:rotate(8deg)}}
@media(prefers-reduced-motion:reduce){.burger,.burger .burger-grid,.burger .burger-grid>span{transition:none!important;animation:none!important}}

/* One fixed grid and glow remain visible through every section, without seams. */
.field .vig{background:radial-gradient(ellipse 75% 48% at 77% 18%,rgba(45,59,137,.22),transparent 76%),radial-gradient(ellipse 52% 54% at 12% 86%,rgba(53,46,119,.11),transparent 79%),radial-gradient(ellipse 100% 100% at 50% 20%,transparent 36%,#080a12 100%)}
.hero{background:transparent}
.hero::before{content:none}
#about,.partners,#portfolio,.it-section,.team-section,#contact,footer{background:transparent}
.partners{border-top:0;border-bottom:0}
.team-section,footer{border-top:0}
#about,#portfolio,.team-section{overflow:hidden}
#about::before,#portfolio::before,.team-section::before{content:"";position:absolute;top:5%;right:-11%;width:clamp(420px,48vw,760px);aspect-ratio:1;border:1px solid rgba(130,150,236,.1);border-radius:50%;transform:rotate(-24deg) scaleY(.72);pointer-events:none}
#portfolio::before{left:-13%;right:auto;top:9%}
.team-section::before{right:-16%;top:3%}
#about>.wrap,#portfolio>.wrap,.team-section>.wrap{position:relative;z-index:1}

/* Translucent glass surfaces let the continuous page background show through. */
:root{--glass-surface:linear-gradient(125deg,rgba(255,255,255,.09),transparent 34%,rgba(119,145,255,.05) 100%),linear-gradient(145deg,rgba(38,48,81,.48),rgba(15,21,40,.4) 72%);--glass-edge:rgba(174,195,255,.34);--glass-shadow:0 18px 42px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.16)}
#about .cap,#about .process-block,#it-projects .it-project,.team-grid .team-member,#contact .contact-wrap{background:var(--glass-surface);border-color:transparent;box-shadow:var(--glass-shadow);backdrop-filter:blur(9px) saturate(120%);-webkit-backdrop-filter:blur(9px) saturate(120%)}
#about .cap:hover{background:var(--glass-surface);border-color:transparent;box-shadow:0 22px 48px rgba(30,44,98,.22),inset 0 1px rgba(255,255,255,.17)}
#about .process-intro{background:radial-gradient(circle at 80% 90%,rgba(72,93,202,.25),transparent 54%),rgba(36,46,83,.26)}
#about .process-steps{background:rgba(10,16,33,.12)}
#partners .partner-track .plogo{background:var(--glass-surface);border-color:transparent;box-shadow:var(--glass-shadow)}
#partners .partner-track .plogo--spbgu img{filter:brightness(1.9) saturate(1.15)}
#portfolio .service-card{background:linear-gradient(125deg,rgba(255,255,255,.09),transparent 35%),linear-gradient(150deg,var(--glass-tint,rgba(47,61,112,.95)),rgba(16,22,42,.97) 75%);border-color:var(--glass-edge);box-shadow:var(--glass-shadow)}
#portfolio .service-card:nth-child(1){--glass-tint:rgba(72,53,119,.95)}
#portfolio .service-card:nth-child(2){--glass-tint:rgba(52,76,133,.95)}
#portfolio .service-card:nth-child(3){--glass-tint:rgba(77,99,181,.95)}
#portfolio .service-card:nth-child(4){--glass-tint:rgba(45,79,114,.95)}
#portfolio .service-card:nth-child(5){--glass-tint:rgba(70,54,121,.95)}
#portfolio .service-grid.is-focused .service-card.is-selected{box-shadow:0 38px 78px rgba(0,0,0,.45),0 0 48px rgba(95,119,234,.16),inset 0 1px rgba(255,255,255,.18)}
#it-projects .it-project{backdrop-filter:blur(5px) saturate(115%);-webkit-backdrop-filter:blur(5px) saturate(115%)}
#it-projects .it-gallery{background:rgba(9,15,30,.3)}
#it-projects .it-thumb{background:rgba(47,61,101,.34);border-color:rgba(162,182,248,.25)}
#contact .contact-actions{background:rgba(10,17,35,.2);border-color:transparent}
@media(hover:hover) and (pointer:fine){.team-grid .team-member:hover{border-color:transparent;box-shadow:0 19px 38px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.16)}}
@media(max-width:700px),(pointer:coarse){#about .cap,#about .process-block,#it-projects .it-project,.team-grid .team-member,#contact .contact-wrap{backdrop-filter:none;-webkit-backdrop-filter:none}}

/* A vector mark renders consistently across mobile emoji fonts. */
.service-grid .service-art--ai svg{position:absolute;inset:0;width:48px;height:48px;margin:auto;color:#96a8ff;animation:slow-spin 20s linear infinite}
.cap-symbol svg{width:27px;height:27px}
@media(prefers-reduced-motion:reduce){.service-grid .service-art--ai svg{animation:none}}

/* Let the browser handle touch scrolling without card lift or mandatory snap. */
@media(max-width:960px){
  #portfolio .service-grid{scroll-snap-type:x proximity;scroll-behavior:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  #portfolio .service-grid .service-card,
  #portfolio .service-grid .service-card:hover,
  #portfolio .service-grid .service-card:focus-visible{transform:none!important;transition:none!important;will-change:auto;box-shadow:0 12px 26px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.08)}
  #portfolio .service-grid .service-card .service-art{transition:none}
  #portfolio .service-grid .service-card:hover .service-art{opacity:.6}
  #portfolio .service-grid .service-card:hover .service-arrow{transform:none;transition:none}
}

/* Lighter glass for the large reading surfaces and capability cards. */
:root{--glass-airy:linear-gradient(125deg,rgba(255,255,255,.045),transparent 38%,rgba(119,145,255,.02)),linear-gradient(145deg,rgba(38,48,81,.2),rgba(15,21,40,.11) 72%)}
#about .cap,#about .cap:hover,#about .process-block,#it-projects .it-project{background:var(--glass-airy)}
#about .cap{backdrop-filter:none;-webkit-backdrop-filter:none}
#about .process-block{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
#it-projects .it-project{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
#about .process-intro{background:radial-gradient(circle at 80% 90%,rgba(72,93,202,.16),transparent 54%),rgba(36,46,83,.07)}
#about .process-steps{background:transparent}
#it-projects .it-gallery{background:rgba(9,15,30,.04)}
@media(max-width:700px),(pointer:coarse){#about .cap,#about .process-block,#it-projects .it-project{backdrop-filter:none;-webkit-backdrop-filter:none}}

/* Team portraits stay crisp while their cards show more of the page background. */
.team-grid .team-member{background:linear-gradient(125deg,rgba(255,255,255,.045),transparent 36%),linear-gradient(145deg,rgba(38,48,81,.26),rgba(15,21,40,.15) 72%);backdrop-filter:none;-webkit-backdrop-filter:none}

/* Give the dashboard illustration a full, centred mobile column. */
@media(max-width:560px){
  .hero .hero-visual{width:min(calc(100vw - 40px),400px);max-width:none;height:350px;margin:42px auto 0;justify-self:center}
  .hero .visual-window{left:0;right:0;top:20px;width:100%;max-width:370px;min-height:290px;margin-inline:auto;transform:none}
  .hero .visual-content{height:252px}
  .hero .visual-chart{height:124px}
  .hero .visual-orbit{left:4%;right:4%}
}

.ui-icons-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.14em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hero-actions .btn .ui-icon{width:16px;height:16px;vertical-align:middle}
.nav-cta .ui-icon,.cap .no .ui-icon{width:13px;height:13px}
.visual-side .ui-icon{width:17px;height:17px}
.floating-card .ui-icon{width:15px;height:15px}
.partner-arrow .ui-icon{width:22px;height:22px;vertical-align:middle}
.service-arrow .ui-icon{width:20px;height:20px}
.it-gallery-open .ui-icon{width:11px;height:11px;vertical-align:-.12em;margin-left:2px}
.contact-actions .arr .ui-icon{width:15px;height:15px}
.hero-bottom .ui-icon,.case-details-label .ui-icon{width:12px;height:12px}
.service-art--systems .ui-icon{width:19px;height:19px;vertical-align:middle}

/* Keep the contact panel and its actions translucent over the page grid. */
#contact .contact-wrap{background:linear-gradient(125deg,rgba(255,255,255,.035),transparent 40%,rgba(119,145,255,.018)),linear-gradient(145deg,rgba(38,48,81,.18),rgba(15,21,40,.1) 72%);box-shadow:0 18px 42px rgba(0,0,0,.11),inset 0 1px rgba(255,255,255,.07);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
#contact .contact-actions{background:rgba(10,17,35,.06);border-color:transparent}
#contact .contact-actions a{border-color:rgba(145,164,224,.18)}
#contact .contact-actions a:hover,#contact .contact-actions a:focus-visible{background:rgba(96,120,200,.1)}
#contact .contact-actions a::before{background:rgba(137,159,255,.55)}
#contact .contact-actions a .ci{background:rgba(69,92,174,.14);border-color:rgba(155,177,247,.26)}
@media(max-width:700px),(pointer:coarse){#contact .contact-wrap{backdrop-filter:none;-webkit-backdrop-filter:none}}
