/* FACTECH — light direction / Apple clarity × Stripe interactions
   Prototype intended for separate preview path, without external CSS or JS. */
:root{color-scheme:light;--ink:#151b29;--ink-2:#293344;--muted:#677386;--weak:#8f99a8;--line:#e7ebf0;--paper:#fff;--soft:#f6f8fb;--blue:#5089f6;--cyan:#12c9e3;--purple:#9e46ea;--ease:cubic-bezier(.2,.8,.2,1);--max:1240px;--shadow:0 24px 80px rgba(32,46,74,.07)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:hidden;background:#fff;color:var(--ink);font:400 16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #319be8;outline-offset:4px;border-radius:5px}::selection{background:#bbeff5;color:#132135}svg{width:20px;height:20px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{letter-spacing:-.055em}.wrap{width:min(var(--max),calc(100% - 88px));margin-inline:auto}.scroll-indicator{position:fixed;z-index:40;height:2px;inset:0 auto auto 0;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--purple));pointer-events:none}.header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.88);border-bottom:1px solid rgba(228,233,240,.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:box-shadow .25s ease}.header.scrolled{box-shadow:0 7px 26px rgba(26,43,67,.045)}.nav-shell{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:block;width:180px;flex:none;line-height:0}.brand img{display:block;width:100%;height:auto}.nav-desktop{display:flex;align-items:center;gap:29px}.nav-desktop>a,.menu-trigger{white-space:nowrap;text-decoration:none;background:none;border:0;cursor:pointer;font-size:13px;font-weight:610;color:#4a5668;transition:color .18s}.nav-desktop>a:hover,.menu-trigger:hover{color:#0f1520}.menu-trigger{display:inline-flex;align-items:center;gap:3px;padding:17px 0}.menu-trigger svg{width:15px;height:15px;transition:transform .25s}.menu-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.menu-host{position:relative}.nav-cta{display:inline-flex!important;align-items:center;gap:9px;background:#171d2c!important;color:#fff!important;border-radius:30px;padding:10px 16px;text-decoration:none;transition:background .24s,transform .24s!important}.nav-cta:hover{background:#30394a!important;transform:translateY(-2px)}.nav-cta svg{width:15px;height:15px}.mega-menu{position:absolute;top:calc(100% + 3px);right:-260px;width:720px;display:grid;grid-template-columns:255px 1fr;gap:27px;padding:29px;background:#fff;border:1px solid #e5eaf2;border-radius:17px;box-shadow:0 26px 80px rgba(30,43,65,.15);animation:dropdown .22s var(--ease)}.mega-menu[hidden],.nav-mobile[hidden]{display:none!important}.mega-left{background:#f6f8fb;border-radius:12px;padding:22px}.mega-left h3{letter-spacing:-.04em;font-size:23px;line-height:1.16;margin:18px 0 13px}.mega-left p{font-size:13px;color:#7b8696}.micro{font-size:9px;letter-spacing:.14em;color:#8c96a5;font-weight:750}.mega-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;align-content:center}.mega-list a{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:630;color:#3c4656;text-decoration:none;padding:12px 8px;border-radius:7px;transition:background .2s,color .2s}.mega-list a:hover{background:#f4f7fb;color:#197fb0}.mega-list a span{font-size:10px;color:#9da6b4}.mobile-trigger,.nav-mobile{display:none}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:760;text-transform:uppercase;color:#7f8999}.eyebrow-dot{display:inline-block;width:7px;height:7px;background:var(--cyan);border-radius:50%;margin-right:7px;box-shadow:0 0 0 4px rgba(18,201,227,.1)}
/* Hero */
.hero{min-height:690px;display:grid;grid-template-columns:1.10fr .90fr;align-items:center;gap:65px;padding-block:73px 98px}.hero-copy{max-width:700px}.hero-eyebrow{font-size:10px;letter-spacing:.16em}.hero h1{font-size:clamp(54px,5vw,82px);line-height:1.075;font-weight:740;letter-spacing:-.062em;margin:30px -12px 27px 0}.hero h1 em,.end-cta h2 em,.inner-hero h1 em{font-style:normal;background:linear-gradient(95deg,#16bcd9 0%,#498cf5 48%,#ad45e5 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-lead{font-size:clamp(17px,1.45vw,20px);line-height:1.68;color:#617084;max-width:600px;margin-bottom:0}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:34px}.btn{display:inline-flex;align-items:center;gap:13px;text-decoration:none;border-radius:100px;padding:15px 23px;min-height:52px;font-weight:650;font-size:13px;white-space:nowrap;transition:background .25s,transform .25s,box-shadow .25s,color .25s}.btn svg{width:17px;height:17px}.btn-dark{background:#17202e;color:#fff;box-shadow:0 10px 25px rgba(24,36,57,.09)}.btn-dark:hover{background:#344255;transform:translateY(-3px);box-shadow:0 18px 35px rgba(24,36,57,.14)}.btn-quiet{background:#f4f6fa;color:#2b3c51}.btn-quiet:hover{background:#e7edf6;transform:translateY(-2px)}.hero-quiet{margin-top:76px;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.035em;color:#a0a9b6}.quiet-line{height:1px;width:35px;background:#a5b8cb}
/* Kinetic interactive stage */
.hero-stage{--stage-a:#16cce5;--stage-b:#647cf8;--stage-c:#a143ee;--parallax-x:0px;--parallax-y:0px;position:relative;height:545px;border-radius:28px;overflow:hidden;background:linear-gradient(145deg,#faffff,#f4f8fd 57%,#faf5ff);border:1px solid #e8edf5;box-shadow:var(--shadow);isolation:isolate;transition:background 400ms ease;outline-offset:7px}.hero-stage[data-mode="1"]{--stage-a:#499ffc;--stage-b:#7e7fff;--stage-c:#b44ee7}.hero-stage[data-mode="2"]{--stage-a:#9d66ee;--stage-b:#cc74eb;--stage-c:#e6a7ed}.hero-stage:before{content:"";position:absolute;inset:-10%;background:radial-gradient(circle at 35% 39%,color-mix(in srgb,var(--stage-a) 17%,transparent),transparent 43%),radial-gradient(circle at 73% 50%,color-mix(in srgb,var(--stage-c) 12%,transparent),transparent 44%);transform:translate(var(--parallax-x),var(--parallax-y));transition:transform .3s var(--ease),background .5s}.stage-top{position:relative;z-index:1;display:flex;justify-content:space-between;padding:27px 29px;color:#8793a5;letter-spacing:.16em;font-size:10px;font-weight:760}.stage-topmark{color:#a9b4c2}.stage-graphic{position:relative;z-index:1;height:280px;margin-top:0;transform:translate(calc(var(--parallax-x) * .55),calc(var(--parallax-y) * .55));transition:transform .3s var(--ease)}.stage-field{position:absolute;width:360px;height:360px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-51%);background:radial-gradient(circle,rgba(255,255,255,.92),transparent 65%);border:1px solid rgba(130,154,187,.12)}.stage-ring{position:absolute;top:50%;left:50%;width:250px;height:152px;border:1.5px solid var(--stage-a);border-radius:50%;opacity:.65;transition:border-color .5s,transform .7s var(--ease)}.ring-a{transform:translate(-50%,-50%) rotate(36deg)}.ring-b{border-color:var(--stage-b);transform:translate(-50%,-50%) rotate(-38deg);width:255px;height:160px}.ring-c{border-color:var(--stage-c);transform:translate(-50%,-50%) rotate(89deg);width:210px;height:118px;opacity:.4}.hero-stage[data-mode="1"] .ring-a{transform:translate(-50%,-50%) rotate(55deg)}.hero-stage[data-mode="1"] .ring-b{transform:translate(-50%,-50%) rotate(-67deg)}.hero-stage[data-mode="1"] .ring-c{transform:translate(-50%,-50%) rotate(112deg)}.hero-stage[data-mode="2"] .ring-a{transform:translate(-50%,-50%) rotate(72deg)}.hero-stage[data-mode="2"] .ring-b{transform:translate(-50%,-50%) rotate(-92deg)}.hero-stage[data-mode="2"] .ring-c{transform:translate(-50%,-50%) rotate(129deg)}.stage-axis{position:absolute;top:50%;left:50%;width:315px;height:1px;transform:translate(-50%,-50%) rotate(35deg);background:linear-gradient(90deg,transparent,#c2d2e6,transparent);opacity:.65}.axis-b{transform:translate(-50%,-50%) rotate(-40deg)}.stage-nucleus{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:92px;height:92px;border-radius:30px;background:rgba(255,255,255,.76);border:1px solid rgba(147,164,192,.27);box-shadow:0 15px 45px rgba(58,91,139,.15);display:grid;place-items:center;backdrop-filter:blur(12px);transition:box-shadow .3s}.stage-nucleus span{font-size:34px;font-weight:750;line-height:1;background:linear-gradient(135deg,var(--stage-a),var(--stage-c));background-clip:text;-webkit-background-clip:text;color:transparent}.stage-dot{position:absolute;width:11px;height:11px;border:3px solid white;border-radius:50%;background:var(--stage-a);box-shadow:0 0 0 1px var(--stage-a),0 3px 11px rgba(73,104,137,.16)}.dot-one{top:27%;left:26%}.dot-two{top:26%;right:21%;background:var(--stage-b)}.dot-three{bottom:24%;right:30%;background:var(--stage-c)}.stage-panel{position:absolute;bottom:19px;left:19px;right:19px;z-index:2;padding:22px 25px 19px;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);border:1px solid #e5eaf1;border-radius:18px;box-shadow:0 7px 35px rgba(64,81,113,.055)}.stage-panel-head{display:flex;justify-content:space-between;gap:12px;letter-spacing:.14em;color:#a1acba;font-weight:770;font-size:9px}.stage-title{margin-top:8px;line-height:1.2;font-weight:730;font-size:27px;letter-spacing:-.04em;transition:opacity .18s}.stage-panel p{font-size:12px;line-height:1.6;color:#738092;max-width:330px;margin:7px 0 14px;min-height:39px}.stage-switch{display:flex;align-items:center;gap:7px}.stage-switch button{border:1px solid #e4e9f0;background:#f7f9fc;border-radius:6px;color:#7d8a9d;font-size:10px;font-weight:740;cursor:pointer;width:32px;height:27px;transition:background .25s,color .25s,border-color .25s,transform .25s}.stage-switch button[aria-pressed="true"]{color:white;border-color:#1e2a3c;background:#202b3d;transform:translateY(-2px)}
.industry-line{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.industry-inner{padding:25px 0;display:flex;align-items:center;gap:35px}.industry-inner>span{font-size:10px;letter-spacing:.14em;color:#99a4b3;font-weight:790}.industry-keywords{font-size:10px;letter-spacing:.10em;color:#6c7888;font-weight:720;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.industry-keywords i{height:3px;width:3px;background:#a5b6c6;border-radius:50%}
/* Sections */
.section{padding:126px 0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:34px;margin-bottom:43px}.section-heading h2{font-weight:730;font-size:clamp(37px,3.9vw,58px);line-height:1.12;letter-spacing:-.055em;margin:16px 0 0}.section-heading h2 span{color:#8793a2}.section-heading>p{max-width:340px;line-height:1.75;font-size:15px;color:#728093;margin-bottom:5px}.offer{background:#fff}.offers-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.offer-card{--spot-x:50%;--spot-y:50%;position:relative;isolation:isolate;display:flex;flex-direction:column;overflow:hidden;min-height:315px;border-radius:18px;border:1px solid #e7ebf2;background:#fcfdff;padding:28px 29px;text-decoration:none;transition:transform .36s var(--ease),box-shadow .36s var(--ease),border-color .36s}.offer-card:before{position:absolute;content:"";inset:0;z-index:-1;opacity:0;background:radial-gradient(390px circle at var(--spot-x) var(--spot-y),rgba(31,182,223,.085),transparent 67%);transition:opacity .35s}.offer-num{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#a3adbc;font-weight:780;letter-spacing:.13em}.offer-num span{color:#50a9dc;width:44px;height:44px;display:grid;place-items:center;border-radius:13px;border:1px solid #e1edf8;background:#f6fbff}.offer-num span svg{width:23px;height:23px}.offer-card:nth-child(3n+2) .offer-num span{color:#6e8af6;border-color:#e8e9fe;background:#f8f8ff}.offer-card:nth-child(3n+3) .offer-num span{color:#a473e3;border-color:#f0e8fa;background:#fcf9ff}.offer-card h3{margin:55px 0 13px;font-size:23px;line-height:1.22;font-weight:735;letter-spacing:-.048em}.offer-card p{font-size:13px;color:#7b8797;line-height:1.72;margin:0 0 22px}.offer-link{margin-top:auto;display:inline-flex;align-items:center;gap:12px;font-size:12px;color:#2889b8;font-weight:720}.offer-link svg{width:16px;height:16px;transition:transform .3s}.section-cta{display:inline-flex;align-items:center;gap:12px;font-size:13px;margin-top:34px;text-decoration:none;font-weight:690;color:#23364b}.section-cta svg,.text-arrow svg{width:17px;height:17px;transition:transform .3s}.section-cta:hover svg,.text-arrow:hover svg,.offer-card:hover .offer-link svg{transform:translateX(4px)}
@media (hover:hover) and (pointer:fine){.offer-card:hover{transform:translateY(-7px);border-color:#cfdcea;box-shadow:0 20px 45px rgba(30,59,90,.075)}.offer-card:hover:before{opacity:1}}
.feature-section{background:#f7f9fc;padding:130px 0}.feature-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:110px}.feature-content h2{margin:22px 0 22px;font-size:clamp(37px,3.7vw,57px);line-height:1.12;max-width:680px}.feature-content h2 span{color:#8d99a8}.feature-content p{color:#718093;font-size:16px;line-height:1.8;max-width:510px;margin-bottom:30px}.text-arrow{font-size:14px;font-weight:730;text-decoration:none;display:inline-flex;gap:13px;align-items:center;color:#1c7ca7}.step{display:grid;grid-template-columns:54px 1fr;gap:17px;padding:21px 0 26px;border-bottom:1px solid #dfe5ed}.step:first-child{padding-top:0}.step>span{font-size:12px;color:#77a9cf;letter-spacing:.1em;font-weight:760;padding-top:4px}.step h3{font-size:21px;letter-spacing:-.04em;margin:0 0 7px}.step p{font-size:13px;color:#7e8a99;line-height:1.65;margin:0}
.product-section{background:#fff}.product-layout{display:grid;grid-template-columns:1fr 1fr;gap:83px;align-items:center}.product-pill{display:block;margin-top:22px;border:1px solid #d9edf6;color:#2588aa;background:#f5fcff;border-radius:50px;width:max-content;padding:7px 11px;font-size:9px;letter-spacing:.13em;font-weight:780}.product-copy h2{margin:20px 0 12px;font-size:clamp(66px,6.6vw,100px);letter-spacing:-.066em;line-height:1}.dot-end,.gradient-dot{color:#20c6e3}.product-lead{font-size:22px;color:#364358;font-weight:640;line-height:1.3;max-width:410px}.product-copy>p:not(.product-lead){font-size:14px;line-height:1.85;color:#758295;max-width:440px;margin-bottom:28px}.product-visual{border:1px solid #e7ebf1;border-radius:22px;overflow:hidden;background:#f6f9fc;min-height:440px;padding:22px}.tech-paper{height:100%;background:#fbfcff;border:1px solid #e9eef4;border-radius:14px;min-height:396px;display:flex;flex-direction:column;padding:18px 20px}.tech-top,.tech-bottom{display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:.11em;font-weight:720;color:#9aa7b8}.tech-paper svg{display:block;width:100%;height:auto;margin:auto 0}.tech-bottom span:last-child{color:#b5beca}
.portfolio{padding-top:30px}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.portfolio-tile{overflow:hidden}.portfolio-visual{height:286px;position:relative;border-radius:16px;overflow:hidden;border:1px solid rgba(20,48,77,.06)}.tile-index{position:absolute;top:19px;left:21px;font-size:10px;letter-spacing:.12em;font-weight:770;color:#788ba0;z-index:2}.pattern-rail{background:linear-gradient(145deg,#eaf9fb,#e5f0f9)}.pattern-electric{background:linear-gradient(140deg,#ecf0ff,#eff7ff)}.pattern-digital{background:linear-gradient(135deg,#f1e9fc,#f8f3fe)}.rail-art{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%) rotate(-21deg);height:270px;width:190px}.rail-art i{display:block;position:absolute;top:-20px;bottom:-20px;width:10px;background:linear-gradient(90deg,#6e9ac0,#e0f7fb 30%,#789fc2 80%);border-radius:5px;box-shadow:0 0 20px rgba(74,135,195,.1)}.rail-art i:nth-child(1){left:32px}.rail-art i:nth-child(2){right:32px}.rail-art i:nth-child(3),.rail-art i:nth-child(4){left:0;right:0;top:55px;bottom:auto;width:100%;height:7px;background:#b6cfdf}.rail-art i:nth-child(4){top:195px}.electric-art{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 40px,rgba(120,146,230,.08) 41px 42px)}.electric-art i{position:absolute;border:2px solid #779fe7;border-radius:13px;width:130px;height:130px;left:50%;top:48%;transform:translate(-50%,-50%) rotate(30deg)}.electric-art i:nth-child(2){width:196px;height:196px;transform:translate(-50%,-50%) rotate(30deg);opacity:.45}.electric-art i:nth-child(3){width:54px;height:54px;border-radius:50%;background:#f8fcff}.digital-art{position:absolute;inset:0;display:grid;place-items:center}.digital-art i{position:absolute;width:190px;height:120px;background:rgba(255,255,255,.55);border:1px solid rgba(165,121,216,.26);border-radius:12px;transform:translate(-20px,-6px) rotate(-10deg);box-shadow:0 18px 25px rgba(154,101,207,.08)}.digital-art i:nth-child(2){transform:translate(17px,20px) rotate(9deg)}.digital-art i:nth-child(3){height:8px;width:115px;background:#c5abea;transform:translate(0,4px) rotate(0)}.digital-art i:nth-child(4){height:8px;width:72px;background:#cfb9f2;transform:translate(-22px,25px) rotate(0)}.portfolio-copy{padding:20px 5px 10px}.portfolio-copy>span{font-size:9px;letter-spacing:.17em;color:#9ba6b5;font-weight:760}.portfolio-copy h3{font-size:22px;line-height:1.25;margin:9px 0 7px;letter-spacing:-.038em}.portfolio-copy p{font-size:13px;color:#7e8b9c;margin:0}.portfolio-note{color:#a0a9b5;font-size:11px;margin-top:27px}
.media-section{padding:130px 0;background:#f7f9fc}.media-grid{display:grid;grid-template-columns:1fr 1fr;gap:105px;align-items:center}.media-preview{background:#fff;border-radius:20px;border:1px solid #e7eaf0;padding:30px;min-height:360px;box-shadow:0 20px 60px rgba(30,58,94,.04)}.media-mast{display:flex;align-items:baseline;gap:8px;font-size:30px;letter-spacing:-.065em;color:#171c2a}.media-mast span{font-weight:340}.media-mast strong{font-weight:790}.media-mast strong span{color:#0fc4df}.media-wire{margin:25px 0 20px;position:relative;background:linear-gradient(160deg,#e8f7fd,#f1f4ff);height:210px;border-radius:12px;overflow:hidden}.media-wire:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 29px,rgba(117,153,194,.07) 30px)}.media-wire>span{position:absolute;bottom:18px;left:20px;font-size:9px;color:#6d8aaf;letter-spacing:.11em;font-weight:720}.media-swoosh{position:absolute;border:2px solid #57b9dd;width:350px;height:110px;border-radius:50%;top:47px;left:20px;transform:rotate(-20deg)}.media-swoosh.two{width:350px;border-color:#988dec;transform:rotate(27deg);left:40px}.media-mini{display:flex;justify-content:space-between;font-size:9px;font-weight:750;letter-spacing:.1em;color:#9ba7b6}.media-copy h2{font-size:clamp(38px,3.9vw,56px);line-height:1.12;margin:20px 0 23px}.media-copy h2 span{color:#8b95a7}.media-copy p{font-size:15px;max-width:460px;color:#758195;line-height:1.82;margin-bottom:31px}
.end-cta{padding:116px 0;background:#fff}.end-inner{border-top:1px solid #e5ebf1;padding-top:75px}.end-inner h2{font-size:clamp(47px,5.7vw,78px);line-height:1.11;font-weight:735;margin:22px 0 43px}.end-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.end-bottom p{font-size:16px;color:#7d8a9a;margin:0}
.footer{border-top:1px solid #e7ebf0;background:#fafbfc;padding:68px 0 23px}.footer-top{display:flex;justify-content:space-between;gap:60px;padding-bottom:65px}.footer-brand{display:block;width:180px;line-height:0}.footer-brand img{width:100%;height:auto}.footer-top p{color:#9aa4b3;font-size:13px;margin:21px 0 0}.footer-links{display:flex;gap:95px}.footer-links>div{display:flex;flex-direction:column;gap:12px}.footer-links>div span{font-size:12px;font-weight:760;color:#313d51;margin-bottom:8px}.footer-links a{text-decoration:none;font-size:12px;color:#7a8798}.footer-links a:hover{color:#278bba}.footer-bottom{padding-top:22px;border-top:1px solid #e6eaf0;display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:11px;color:#a0aab6}.footer-bottom a{text-decoration:none;color:#6b839a}
/* Inner pages */
.inner-hero{padding-top:115px;padding-bottom:90px}.inner-hero h1{max-width:980px;font-size:clamp(47px,5.4vw,76px);line-height:1.1;letter-spacing:-.06em;margin:25px 0}.inner-hero>p{font-size:clamp(17px,1.6vw,21px);color:#69788c;max-width:740px;line-height:1.72}.inner-section{padding:60px 0 120px}.inner-section .offers-grid .offer-card{min-height:285px}.service-layout{display:grid;grid-template-columns:1fr 1fr;gap:105px}.service-intro h2{font-size:clamp(33px,3.5vw,49px);line-height:1.18;margin:18px 0 21px}.service-intro p{font-size:15px;line-height:1.85;color:#788597;max-width:490px}.service-intro .btn{margin-top:22px}.service-bullets ul{margin:0;padding:0;list-style:none;border-top:1px solid #e8edf2}.service-bullets li{display:flex;align-items:center;gap:18px;padding:21px 4px;border-bottom:1px solid #e8edf2;font-weight:590;font-size:15px;color:#33465c}.service-bullets li:before{content:"";width:7px;height:7px;border:2px solid #42c4e3;border-radius:50%;flex:none}.section-light{background:#f8fafd}.small-banner{padding:72px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.small-banner h2{font-size:27px;margin:0}.product-simple{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.product-simple h2{font-size:42px;line-height:1.15;margin:18px 0}.product-simple p{font-size:15px;line-height:1.8;color:#718093;max-width:490px}.product-simple .btn{margin-top:20px}.simple-product-art{position:relative;border-radius:20px;min-height:345px;background:linear-gradient(135deg,#f4fcff,#e9f2fd);display:flex;align-items:center;justify-content:center;overflow:hidden}.simple-product-art>span{position:absolute;top:18px;left:23px;font-size:11px;font-weight:760;letter-spacing:.16em;color:#8c9faf}.art-bars{position:relative;width:68%;height:180px;transform:perspective(700px) rotateY(-24deg) rotateX(9deg)}.art-bars:before,.art-bars:after{content:"";position:absolute;top:0;bottom:0;width:13px;background:#5d7f9f}.art-bars:before{left:15%}.art-bars:after{right:15%}.art-bars i{position:absolute;left:15%;right:15%;height:11px;top:29%;background:linear-gradient(90deg,#17bddd,#6e96ee)}.art-bars i:nth-child(2){top:65%}.detail-product{min-height:420px}.detail-product small{position:absolute;bottom:18px;right:20px;color:#9aa5b4}.disclaimer{font-size:12px!important}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-main{padding:35px 32px;display:flex;flex-direction:column;gap:15px;text-decoration:none;min-height:220px;background:#f7f9fc;border:1px solid #e7ecf3;border-radius:18px;transition:transform .3s,box-shadow .3s}.contact-main strong{font-size:clamp(22px,2.4vw,33px);letter-spacing:-.045em}.contact-main svg{color:#29aaca}.contact-main:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
/* Motion */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.is-visible{opacity:1;transform:translateY(0)}.offer-card.reveal:nth-child(3n+2){transition-delay:.07s}.offer-card.reveal:nth-child(3n+3){transition-delay:.14s}.portfolio-tile.reveal:nth-child(2){transition-delay:.07s}.portfolio-tile.reveal:nth-child(3){transition-delay:.13s}@keyframes dropdown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
/* Responsive */
@media(max-width:1160px){.wrap{width:min(var(--max),calc(100% - 64px))}.nav-desktop{gap:17px}.hero{gap:35px}.hero h1{font-size:clamp(51px,5vw,70px)}.hero-stage{height:510px}.feature-grid{gap:60px}.product-layout,.media-grid{gap:55px}}
@media(max-width:960px){.nav-desktop{gap:13px}.nav-desktop>a,.menu-trigger{font-size:12px}.brand{width:155px}.hero{grid-template-columns:1fr .85fr;gap:26px;min-height:0;padding:75px 0 90px}.hero h1{font-size:clamp(45px,5.3vw,61px)}.hero-stage{height:490px}.stage-graphic{height:265px}.offers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.offer-card{min-height:300px}.portfolio-grid{gap:12px}.portfolio-visual{height:220px}.media-mast{font-size:25px}.service-layout{gap:55px}}
@media(max-width:600px){.nav-desktop{display:none}.nav-shell{min-height:72px}.brand{width:154px}.mobile-trigger{display:flex;flex-direction:column;gap:6px;justify-content:center;align-items:center;border:1px solid #e2e8ee;width:44px;height:41px;background:#fff;border-radius:10px;cursor:pointer}.mobile-trigger span{height:1.5px;width:18px;border-radius:10px;background:#29364a;transition:transform .25s}.mobile-trigger[aria-expanded=true] span:first-child{transform:translateY(3.7px) rotate(45deg)}.mobile-trigger[aria-expanded=true] span:last-child{transform:translateY(-3.7px) rotate(-45deg)}.nav-mobile{display:flex;position:absolute;left:0;right:0;top:100%;max-height:calc(100dvh - 72px);overflow:auto;flex-direction:column;background:#fff;padding:14px 32px 35px;box-shadow:0 23px 35px rgba(31,45,71,.11)}.nav-mobile a{display:flex;justify-content:space-between;align-items:center;padding:15px 0;text-decoration:none;border-bottom:1px solid #eef1f4;font-weight:650;font-size:17px}.nav-mobile svg{width:17px}.hero{grid-template-columns:1fr;gap:35px;padding:74px 0 73px}.hero-copy{max-width:680px}.hero h1{font-size:clamp(55px,8.4vw,75px)}.hero-quiet{margin-top:40px}.hero-stage{width:100%;max-width:620px;margin:auto;height:435px}.stage-graphic{height:225px}.stage-field{width:290px;height:290px}.stage-panel{bottom:12px}.stage-top{padding:22px}.industry-inner{align-items:flex-start;gap:19px}.industry-keywords{line-height:1.6}.feature-grid,.product-layout,.media-grid{grid-template-columns:1fr;gap:50px}.product-visual{max-width:650px;width:100%}.media-preview{max-width:650px;width:100%;order:2}.media-copy{order:1}.feature-section,.media-section{padding:95px 0}.section{padding:95px 0}.portfolio{padding-top:20px}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-tile:last-child{grid-column:1/-1}.portfolio-tile:last-child .portfolio-visual{height:200px}.service-layout{grid-template-columns:1fr;gap:45px}.inner-hero{padding:85px 0 65px}}
@media(max-width:600px){.wrap{width:calc(100% - 40px)}.nav-shell{min-height:68px}.brand{width:143px}.nav-mobile{padding:12px 20px 24px}.hero{padding:57px 0 62px}.hero-eyebrow{font-size:9px;letter-spacing:.095em}.hero h1{font-size:clamp(42px,10.5vw,62px);margin:21px 0 22px}.hero-lead{font-size:17px}.hero-actions{flex-direction:column;align-items:stretch;margin-top:26px}.btn{justify-content:center;min-height:52px}.hero-quiet{margin-top:35px;line-height:1.6}.hero-stage{height:425px}.stage-graphic{height:235px}.stage-panel{padding:17px 20px}.stage-title{font-size:25px}.stage-panel p{font-size:12px}.industry-inner{padding:20px 0;flex-direction:column;gap:11px}.industry-keywords{gap:10px;font-size:9px}.section,.feature-section,.media-section{padding:78px 0}.section-heading{flex-direction:column;align-items:start;gap:15px;margin-bottom:30px}.section-heading h2{font-size:clamp(34px,9vw,47px)}.section-heading>p{font-size:14px}.offers-grid{grid-template-columns:1fr;gap:12px}.offer-card{min-height:249px;padding:24px}.offer-card h3{margin-top:25px;font-size:23px}.offer-card p{font-size:13px}.feature-content h2,.media-copy h2{font-size:clamp(35px,9vw,45px)}.feature-content p{font-size:14px}.feature-grid{gap:37px}.step{grid-template-columns:37px 1fr;gap:7px}.product-copy h2{font-size:70px}.product-visual{min-height:345px;padding:12px}.tech-paper{padding:16px;min-height:319px}.portfolio{padding-top:10px}.portfolio-grid{grid-template-columns:1fr;gap:24px}.portfolio-tile:last-child{grid-column:auto}.portfolio-visual,.portfolio-tile:last-child .portfolio-visual{height:275px}.media-preview{padding:19px;min-height:300px}.media-wire{height:175px}.media-mast{font-size:23px}.media-mini{font-size:8px}.end-cta{padding:81px 0}.end-inner{padding-top:47px}.end-inner h2{font-size:clamp(40px,9.3vw,58px)}.end-bottom{align-items:flex-start;flex-direction:column;gap:18px}.footer{padding-top:48px}.footer-top{flex-direction:column;gap:38px;padding-bottom:38px}.footer-links{gap:58px}.footer-bottom{flex-direction:column;align-items:flex-start}.inner-hero{padding:73px 0 46px}.inner-hero h1{font-size:clamp(43px,11vw,60px)}.inner-hero>p{font-size:17px}.inner-section{padding:30px 0 85px}.service-intro h2{font-size:36px}.service-bullets li{font-size:14px}.product-simple,.contact-grid{grid-template-columns:1fr;gap:35px}.small-banner{flex-direction:column;align-items:flex-start;gap:20px;padding:55px 0}.contact-main{min-height:180px}.media-grid{gap:30px}}
@media(max-width:370px){.wrap{width:calc(100% - 30px)}.hero h1{font-size:40px}.hero-eyebrow{letter-spacing:.045em}.hero-stage{height:420px}.stage-ring{scale:.86}.industry-keywords{gap:8px}.media-mast{font-size:20px}}
@media(hover:none),(pointer:coarse){.offer-card{--scroll-progress:0;transform:translateY(calc(-5px * var(--scroll-progress)));box-shadow:0 calc(20px * var(--scroll-progress)) calc(40px * var(--scroll-progress)) rgba(32,59,94,calc(.08 * var(--scroll-progress)));transition:none;border-color:color-mix(in srgb,#d3e4f0 calc(100% * var(--scroll-progress)),#e7ebf2)}.offer-card:before{opacity:calc(.68 * var(--scroll-progress));transition:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}.hero-stage:before,.stage-graphic{transform:none!important}.offer-card{--scroll-progress:0!important}}
/* Narrow device safety: allow grid content to shrink below its intrinsic size. */
.product-layout>* , .product-simple>* , .media-grid>*{min-width:0}
@media(max-width:370px){.product-copy h2{font-size:clamp(48px,15vw,58px)}.tech-top,.tech-bottom{font-size:7px;letter-spacing:.06em}.hero-actions .btn{white-space:normal;text-align:center}}

.legal-copy{max-width:790px}.legal-copy h2{font-size:23px;line-height:1.3;margin:30px 0 11px;letter-spacing:-.03em}.legal-copy p{font-size:15px;color:#647287;line-height:1.8;margin:0 0 15px}.legal-copy a{color:#147fae}.legal-note{padding:14px 18px;background:#f3f7fb;border-radius:9px;color:#7b8a9b!important;font-size:12px!important}

/* FACTECH v3 — jednolity system trzech scen: typografia, schematy, mikrointerakcje. */
.stage-v3 {
  --stage-a:#18bdd9;
  position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;
  height:572px;overflow:hidden;border:1px solid #e5edf3;border-radius:26px;
  background:linear-gradient(145deg,#fafdff 0%,#f4f9fd 76%,#f8f8fd 100%);
  box-shadow:0 19px 64px rgba(49,82,119,.065),0 2px 8px rgba(49,82,119,.025);
  isolation:isolate;--parallax-x:0px;--parallax-y:0px;
  transition:background .45s ease;
}
.stage-v3[data-mode="1"]{--stage-a:#548ef5;background:linear-gradient(145deg,#fafdff,#f3f8ff 75%,#f6f6ff)}
.stage-v3[data-mode="2"]{--stage-a:#a570e8;background:linear-gradient(145deg,#fcfdff,#f7f8ff 72%,#faf5fc)}
.stage-v3::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 54% 50% at 50% 38%,color-mix(in srgb,var(--stage-a) 10%,transparent),transparent 80%);opacity:.45;filter:blur(32px);transform:none;z-index:0}
.stage-v3 .stage-top{position:relative;z-index:2;display:flex;justify-content:space-between;padding:21px 24px 5px;color:#8b9db1;letter-spacing:.14em;font-size:9px;font-weight:750}
.stage-v3 .stage-top>span:first-child{display:inline-flex;align-items:center;gap:7px}
.stage-v3 .stage-live-dot{height:6px;width:6px;border-radius:50%;background:var(--stage-a);box-shadow:0 0 0 4px rgba(64,180,218,.085)}
.stage-v3 .stage-top-slash{color:#c3cfdb}
.stage-v3 .stage-topmark{color:#93a4b6}
.stage-v3 .stage-graphic{position:relative;min-height:0;margin:0;overflow:hidden;transform:none;transition:none}
.stage-v3 .stage-art-stage{position:absolute;inset:0 0 28px;transform:translate(calc(var(--parallax-x) * .25),calc(var(--parallax-y) * .25));transition:transform .28s ease}
.stage-v3 .stage-artwork{position:absolute;inset:-2px 0 0;display:grid;place-items:center;opacity:0;visibility:hidden;transform:translateY(10px) scale(.97);transition:opacity .38s ease,transform .5s cubic-bezier(.2,.8,.2,1),visibility .5s;pointer-events:none}
.stage-v3 .stage-artwork.is-active{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.stage-v3 .stage-svg{display:block;width:100%;height:100%;max-width:100%;overflow:visible;transform:translateY(-7px) scale(.96);transform-origin:center center}
.stage-v3 .stage-graphic-caption{position:absolute;left:23px;right:23px;bottom:7px;z-index:3;display:flex;align-items:center;gap:8px;color:#8b9bad;font-size:9px;letter-spacing:.07em;font-weight:700;pointer-events:none}
.stage-v3 .stage-caption-light{width:5px;height:5px;border-radius:50%;background:var(--stage-a)}
.stage-v3 .stage-caption-meta{margin-left:auto;color:#a6b3c3;font-size:8px;letter-spacing:.05em}
.stage-v3 .stage-panel{position:relative;bottom:auto;left:auto;right:auto;z-index:3;margin:0 15px 15px;padding:17px 19px 15px;border:1px solid #e3ebf2;border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 9px 30px rgba(63,87,119,.045);backdrop-filter:blur(10px)}
.stage-v3 .stage-panel-head{display:flex;justify-content:space-between;gap:8px;font-size:9px;letter-spacing:.12em;color:#99a8b8;font-weight:750}
.stage-v3 .stage-title{margin:7px 0 0;font-size:25px;line-height:1.2;letter-spacing:-.038em;font-weight:740;color:#1d2634}
.stage-v3 .stage-panel p{min-height:35px;max-width:none;margin:5px 0 9px;font-size:12px;line-height:1.45;color:#6d7e90}
.stage-v3 .stage-insights{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:13px;min-height:28px}
.stage-v3 .stage-insight{display:inline-flex;align-items:center;gap:7px;min-height:27px;padding:4px 9px;background:#f6f9fc;border:1px solid #e8edf4;border-radius:999px;color:#71859a;font-size:10px;font-weight:680;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s}
.stage-v3 .stage-insight:hover,.stage-v3 .stage-insight:focus-visible{background:#edf5fb;border-color:#c8deef;color:#2f5e7b;transform:translateY(-1px)}
.stage-v3 .stage-insight[aria-pressed="true"]{border-color:color-mix(in srgb,var(--stage-a) 42%,#e0e9f0);background:color-mix(in srgb,var(--stage-a) 8%,#fff);color:#284f69}
.stage-v3 .insight-dot{width:5px;height:5px;border-radius:50%;background:var(--stage-a)}
.stage-v3 .insight-arrow{font-size:11px;color:#acbdcc}
.stage-v3 .stage-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.stage-v3 .stage-switch button{width:auto;min-width:0;height:35px;padding:0 3px;display:flex;justify-content:center;align-items:center;gap:5px;white-space:nowrap;font-size:10px;letter-spacing:-.01em;font-weight:710;border-radius:8px;border:1px solid #e4eaf1;background:#f7f9fc;color:#7e90a4;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.stage-v3 .stage-switch button span{font-size:9px;opacity:.7;letter-spacing:0}
.stage-v3 .stage-switch button:hover:not([aria-pressed="true"]){background:#eaf2f9;color:#2d4861;border-color:#cbddeb}
.stage-v3 .stage-switch button[aria-pressed="true"]{background:#213047;color:#fff;border-color:#213047;transform:none}
.stage-v3 :is(.stage-switch button,.stage-insight):focus-visible{outline:2px solid #4f9eec;outline-offset:2px}
@keyframes stage-v3-flow{to{stroke-dashoffset:-52}}
@keyframes stage-v3-breathe{50%{opacity:.55}}
@keyframes stage-v3-scan{to{transform:translateX(95px)}}
.stage-v3 .stage-dash{animation:stage-v3-flow 3.9s linear infinite}
.stage-v3 .stage-dash--slow{animation-duration:5.4s}
.stage-v3 .tech-traces--accent{animation:stage-v3-flow 4.5s linear infinite}
.stage-v3 .media-wave{animation:stage-v3-breathe 3.2s ease-in-out infinite}
.stage-v3 .media-playhead{animation:stage-v3-scan 7s linear infinite}

@media(max-width:1160px){.stage-v3{height:545px}}
@media(max-width:960px){.stage-v3{height:517px}.stage-v3 .stage-top{padding:18px 19px 3px}.stage-v3 .stage-panel{margin:0 11px 11px;padding:14px 14px 12px}.stage-v3 .stage-title{font-size:23px}.stage-v3 .stage-panel p{font-size:11px}.stage-v3 .stage-switch button{font-size:9px}}
@media(max-width:600px){.stage-v3{height:535px;max-width:620px}}
@media(max-width:600px){.stage-v3{height:506px;border-radius:22px}.stage-v3 .stage-top{padding:17px 17px 3px;font-size:8px}.stage-v3 .stage-panel{margin:0 11px 11px;padding:13px 14px 12px}.stage-v3 .stage-title{font-size:23px}.stage-v3 .stage-panel-head{font-size:8px}.stage-v3 .stage-panel p{font-size:11px;min-height:31px;line-height:1.44}.stage-v3 .stage-graphic-caption{left:14px;right:14px;font-size:8px;bottom:5px}.stage-v3 .stage-caption-meta{font-size:7px}.stage-v3 .stage-insights{margin-bottom:10px;gap:5px}.stage-v3 .stage-insight{font-size:9px;min-height:26px;padding:4px 8px}.stage-v3 .stage-switch button{font-size:9px;height:34px;gap:3px}.stage-v3 .stage-switch button span{font-size:8px}}
@media(max-width:370px){.stage-v3{height:490px}.stage-v3 .stage-panel{padding:12px 10px}.stage-v3 .stage-top{padding:15px 12px 3px}.stage-v3 .stage-graphic-caption{font-size:7px;left:10px;right:10px}.stage-v3 .stage-switch{gap:4px}.stage-v3 .stage-switch button{font-size:8px}}
@media(prefers-reduced-motion:reduce){.stage-v3 .stage-dash,.stage-v3 .tech-traces--accent,.stage-v3 .media-playhead,.stage-v3 .media-wave,.stage-v3 .rail-train,.stage-v3 .rail-monitor-pulse,.stage-v3 .rail-display-lines,.stage-v3 .rail-pulse{animation:none!important}.stage-v3 .stage-artwork{transition:none!important}.stage-v3 .stage-art-stage{transform:none!important;transition:none!important}}


/* FACTECH HERO v5: coherent technical storytelling with meaningful motion. */
.stage-v3 .stage-svg-v5{transform:translateY(-4px) scale(.98);overflow:hidden}
.stage-v3[data-focus="0"] .r5-transmission{filter:drop-shadow(0 0 6px rgba(12,198,224,.50))}
.stage-v3[data-focus="1"] .r5-power{filter:drop-shadow(0 0 7px rgba(131,115,241,.55))}
.stage-v3[data-focus="0"] .t5-security{filter:drop-shadow(0 0 5px rgba(83,148,235,.45))}
.stage-v3[data-focus="1"] .t5-network{filter:drop-shadow(0 0 5px rgba(42,197,224,.48))}
.stage-v3[data-focus="0"] .m5-event{filter:drop-shadow(0 0 6px rgba(145,111,223,.24))}
.stage-v3[data-focus="1"] .m5-production{filter:drop-shadow(0 0 7px rgba(115,126,239,.32))}
@keyframes factech-train-movement{
  0%,23%{transform:translateX(0)}
  61%{transform:translateX(-520px)}
  61.1%{transform:translateX(295px)}
  100%{transform:translateX(0)}
}
@keyframes factech-line-flow{to{stroke-dashoffset:-70}}
@keyframes factech-pulse-ring{0%,100%{opacity:.16;transform:scale(.75)}50%{opacity:.52;transform:scale(1.05)}}
@keyframes factech-soft-flicker{0%,100%{opacity:1}47%{opacity:.72}52%{opacity:1}}
@keyframes factech-signal-sweep{0%,100%{opacity:.2}50%{opacity:.95}}
@keyframes factech-meter-level{0%,100%{opacity:.8}30%{opacity:.55}65%{opacity:1}}
@keyframes factech-camera-led{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes factech-playhead{0%{transform:translateX(0)}100%{transform:translateX(162px)}}
.stage-v3 .stage-artwork.is-active .r5-train{animation:factech-train-movement 14s cubic-bezier(.36,.02,.64,.99) infinite}
.stage-v3 .stage-artwork.is-active .r5-flowline{animation:factech-line-flow 3.4s linear infinite}
.stage-v3 .stage-artwork.is-active .r5-flowline-power{animation-duration:4.6s}
.stage-v3 .stage-artwork.is-active .r5-cctv-scan,.stage-v3 .stage-artwork.is-active .t5-security-ring,.stage-v3 .stage-artwork.is-active .m5-broadcast-ring{animation:factech-pulse-ring 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.stage-v3 .stage-artwork.is-active .r5-board-content,.stage-v3 .stage-artwork.is-active .t5-chip-glow{animation:factech-soft-flicker 3.8s ease-in-out infinite}
.stage-v3 .stage-artwork.is-active .t5-data,.stage-v3 .stage-artwork.is-active .m5-signal{animation:factech-line-flow 3.7s linear infinite}
.stage-v3 .stage-artwork.is-active .t5-packet{animation:factech-signal-sweep 2.5s ease-in-out infinite}
.stage-v3 .stage-artwork.is-active .t5-packet-b{animation-delay:.7s}
.stage-v3 .stage-artwork.is-active .m5-rec-dot,.stage-v3 .stage-artwork.is-active .m5-camera-led{animation:factech-camera-led 1.5s ease-in-out infinite}
.stage-v3 .stage-artwork.is-active .m5-playhead{animation:factech-playhead 6.6s linear infinite}
.stage-v3 .stage-artwork.is-active .m5-animated-wave,.stage-v3 .stage-artwork.is-active .m5-meter{animation:factech-meter-level 2.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){
  .stage-v3 .r5-train,.stage-v3 .r5-flowline,.stage-v3 .r5-cctv-scan,.stage-v3 .r5-board-content,.stage-v3 .t5-security-ring,.stage-v3 .t5-data,.stage-v3 .t5-chip-glow,.stage-v3 .t5-packet,.stage-v3 .m5-broadcast-ring,.stage-v3 .m5-signal,.stage-v3 .m5-rec-dot,.stage-v3 .m5-camera-led,.stage-v3 .m5-playhead,.stage-v3 .m5-meter,.stage-v3 .m5-animated-wave{animation:none!important}
}

/* FACTECH HERO v6 — one consistent axonometric rail projection. */
@keyframes factech-train-movement-v6{
  0%,16% {transform:translate(0,0);opacity:1}
  52% {transform:translate(-465px,70px);opacity:1}
  52.1% {transform:translate(330px,-50px);opacity:0}
  62% {transform:translate(330px,-50px);opacity:1}
  94%,100% {transform:translate(0,0);opacity:1}
}
.stage-v3 .stage-artwork.is-active .f6-train{
  animation:factech-train-movement-v6 16s linear infinite;
}
.stage-v3 .f6-bogie{filter:none}
@media(prefers-reduced-motion:reduce){
  .stage-v3 .stage-artwork.is-active .f6-train{animation:none!important;transform:none!important}
}

/* HERO v7: one orthographic X-axis for station, rail heads and rolling stock.
   y=231: far rail; y=254: near rail; both bogies straddle the rail gauge. */
.stage-v3 .stage-svg-v7{display:block;width:100%;height:100%;max-width:100%;overflow:hidden;transform:translateY(-4px) scale(.98);transform-origin:center}
@keyframes v7-train-pass {
  0%,15% { transform:translateX(0); }
  44%,49% { transform:translateX(-455px); }
  49.1% { transform:translateX(455px); }
  83%,100% { transform:translateX(0); }
}
@keyframes v7-route-data {to{stroke-dashoffset:-64}}
@keyframes v7-scan {0%,100%{opacity:.12}50%{opacity:.42}}
@keyframes v7-info {0%,100%{opacity:1}52%{opacity:.68}}
.stage-v3 .stage-artwork.is-active .v7-train{animation:v7-train-pass 16s cubic-bezier(.4,.02,.6,.98) infinite}
.stage-v3 .stage-artwork.is-active .v7-packets{animation:v7-route-data 3.1s linear infinite}
.stage-v3 .stage-artwork.is-active .v7-packets-power{animation-duration:4.2s}
.stage-v3 .stage-artwork.is-active .v7-scanner{animation:v7-scan 3.2s ease-in-out infinite}
.stage-v3 .stage-artwork.is-active .v7-board-content{animation:v7-info 4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){
 .stage-v3 .stage-artwork.is-active :is(.v7-train,.v7-packets,.v7-scanner,.v7-board-content){animation:none!important;transform:none!important}
}

/* FACTECH HERO v8 · photo-illustrative system, one scene at a time */
.stage-v8{height:586px;background:linear-gradient(160deg,#f9fcff 0%,#f6faff 56%,#f8f7fd 100%)}
.stage-v8[data-mode="1"]{background:linear-gradient(160deg,#fafcff,#f2f8ff 68%,#f3f4ff)}
.stage-v8[data-mode="2"]{background:linear-gradient(160deg,#fcfdff,#f6f9ff 64%,#f8f4ff)}
.stage-v8 .stage-graphic{overflow:hidden}
.stage-v8 .stage-art-stage{inset:0 6px 24px;transform:translate(calc(var(--parallax-x) * .13),calc(var(--parallax-y) * .13))}
.stage-v8 .stage-artwork{inset:0;transition:opacity .55s cubic-bezier(.2,.8,.2,1),transform .55s cubic-bezier(.2,.8,.2,1),visibility .55s}
.stage-v8 .v8-scene{position:relative;height:100%;width:100%;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.stage-v8 .v8-scene:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 50% 55% at 50% 52%,rgba(52,166,219,.10),transparent 84%)}
.stage-v8 .v8-scene img{display:block;object-fit:contain;user-select:none;-webkit-user-drag:none;max-width:none;filter:drop-shadow(0 8px 15px rgba(43,83,128,.06))}
.stage-v8 .v8-scene--rail img{width:99%;height:100%;object-fit:contain;mix-blend-mode:multiply;mask-image:linear-gradient(90deg,transparent 0%,#000 2%,#000 98%,transparent 100%)}
.stage-v8 .v8-scene--tech img,.stage-v8 .v8-scene--media img{height:102%;width:auto;max-width:100%;object-fit:contain;border-radius:17px;mask-image:radial-gradient(ellipse 65% 68% at 50% 50%,#000 57%,rgba(0,0,0,.85) 77%,transparent 100%)}
.stage-v8 .v8-scene--media img{height:108%;width:auto}
.stage-v8 .v8-signal{position:absolute;display:block;width:7px;height:7px;border-radius:50%;background:#19cee9;box-shadow:0 0 0 4px rgba(20,204,235,.12),0 0 16px 7px rgba(20,204,235,.15);opacity:0;pointer-events:none;animation:v8-signal-pulse 5s ease-in-out infinite}
.stage-v8 .v8-signal-2{animation-delay:1.7s;background:#7e88f7;box-shadow:0 0 0 4px rgba(105,121,239,.13),0 0 16px 6px rgba(105,121,239,.11)}
.stage-v8 .v8-signal-3{animation-delay:3.1s}
.stage-v8 .v8-scene--rail .v8-signal-1{left:19%;top:37%}.stage-v8 .v8-scene--rail .v8-signal-2{right:18%;bottom:26%}
.stage-v8 .v8-scene--tech .v8-signal-1{left:39%;top:57%}.stage-v8 .v8-scene--tech .v8-signal-2{right:34%;top:44%}.stage-v8 .v8-scene--tech .v8-signal-3{left:27%;bottom:26%}
.stage-v8 .v8-scene--media .v8-signal-1{left:36%;top:42%}.stage-v8 .v8-scene--media .v8-signal-2{right:23%;top:57%}.stage-v8 .v8-scene--media .v8-signal-3{left:40%;bottom:22%}
@keyframes v8-signal-pulse{0%,100%{opacity:0;transform:scale(.65)}35%{opacity:.85;transform:scale(1)}65%{opacity:0;transform:scale(1.4)}}
.stage-v8 .stage-panel{margin:0 15px 15px}
.stage-v8[data-focus="0"] .v8-scene--rail .v8-signal-1,.stage-v8[data-focus="1"] .v8-scene--rail .v8-signal-2{opacity:1;animation-duration:1.8s}
@media(max-width:960px){.stage-v8{height:558px}}
@media(max-width:600px){.stage-v8{height:555px}}
@media(max-width:600px){.stage-v8{height:515px}.stage-v8 .v8-scene--rail img{width:109%;height:100%}.stage-v8 .v8-scene--tech img,.stage-v8 .v8-scene--media img{height:100%}.stage-v8 .stage-art-stage{inset:0 3px 21px}}
@media(max-width:370px){.stage-v8{height:501px}}
@media(prefers-reduced-motion:reduce){.stage-v8 .v8-signal{animation:none;opacity:0}.stage-v8 .stage-art-stage{transform:none}}
.stage-v8 .stage-artwork:not(.is-active) .v8-signal{animation-play-state:paused}
.stage-v8 .v8-scene--tech:after,.stage-v8 .v8-scene--media:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s ease;mix-blend-mode:screen}
.stage-v8[data-mode="1"][data-focus="0"] .v8-scene--tech:after{opacity:.32;background:radial-gradient(ellipse at 34% 22%,rgba(65,195,246,.25),transparent 55%)}
.stage-v8[data-mode="1"][data-focus="1"] .v8-scene--tech:after{opacity:.30;background:radial-gradient(ellipse at 70% 70%,rgba(97,105,239,.22),transparent 60%)}
.stage-v8[data-mode="2"][data-focus="0"] .v8-scene--media:after{opacity:.29;background:radial-gradient(ellipse at 30% 32%,rgba(96,115,240,.23),transparent 52%)}
.stage-v8[data-mode="2"][data-focus="1"] .v8-scene--media:after{opacity:.27;background:radial-gradient(ellipse at 60% 77%,rgba(167,94,233,.2),transparent 55%)}


/* v8.1 | Fix kadrowania ilustracji w HERO
   Obrazy pionowe nie mogą rozciągać siatki ani wychodzić poza panel.
   W trybie infrastruktury zachowujemy panoramiczną prezentację. */
.stage-v8 .stage-graphic,
.stage-v8 .stage-art-stage,
.stage-v8 .stage-artwork,
.stage-v8 .v8-scene {
  min-width: 0;
  min-height: 0;
}
.stage-v8 .stage-artwork,
.stage-v8 .v8-scene {
  overflow: hidden;
}
.stage-v8 .v8-scene {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
}
/* Miękkie, niemal niewidoczne przedłużenie tła dla pionowych kadrów. */
.stage-v8 .v8-scene--tech::before,
.stage-v8 .v8-scene--media::before {
  content: "";
  position: absolute;
  inset: -18%;
  z-index: 0;
  filter: blur(30px);
  opacity: .14;
  pointer-events: none;
  transform: scale(1.03);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.stage-v8 .v8-scene--tech::before { background-image: url("hero-technologie.webp"); }
.stage-v8 .v8-scene--media::before { background-image: url("hero-komunikacja.webp"); opacity: .105; }
.stage-v8 .v8-scene img,
.stage-v8 .v8-scene--rail img,
.stage-v8 .v8-scene--tech img,
.stage-v8 .v8-scene--media img {
  display: block;
  position: absolute;
  inset: 0;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
  object-position: center center;
  border-radius: 0;
  mask-image: none;
  -webkit-mask-image: none;
  transform: none;
}
/* Zachowanie dotychczasowego wyglądu infrastruktury. */
.stage-v8 .v8-scene--rail img {
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent);
  mask-image: linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent);
}
@media (max-width:600px) {
  .stage-v8 .stage-art-stage { inset: 0 5px 22px; }
  .stage-v8 .v8-scene img,
  .stage-v8 .v8-scene--rail img,
  .stage-v8 .v8-scene--tech img,
  .stage-v8 .v8-scene--media img { width:100%; height:100%; }
}

/* v8.2 | Dedykowane panoramiczne kadry 1200 × 565.
   Nie skalujemy pionowych obrazow, nie stosujemy paskow ani efektu lustrzanego. */
.stage-v8 .v8-scene--tech::before,
.stage-v8 .v8-scene--media::before { content:none; display:none; }
.stage-v8 .v8-scene--tech img,
.stage-v8 .v8-scene--media img {
  width:100%; height:100%; max-width:none; max-height:none;
  object-fit:cover; object-position:50% 50%;
  mask-image:none; -webkit-mask-image:none; mix-blend-mode:normal;
  filter:none; border-radius:0;
}
/* Kadrowanie obrazów w dwóch trybach jest jednakowe na mobile i desktopie. */
@media(max-width:600px) {
  .stage-v8 .v8-scene--tech img,.stage-v8 .v8-scene--media img{
     object-fit:cover;object-position:center center;
  }
}


/* v8.3: device-specific art composition, not blind image cropping.
   Keep images centered and maintain desktop graphics unchanged. */
.stage-v8 .v83-responsive-art { position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden; }
.stage-v8 .v83-responsive-art img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%; }
@media(max-width:600px){
  .stage-v8 .v83-responsive-art img { object-fit:cover;object-position:center center; }
}

/* v8.4 — Crisp art, no artificial or duplicated blur.
   Original WebP content was geometrically reframed to exclude soft-edged bands. */
.stage-v8 .v8-scene--tech::before,
.stage-v8 .v8-scene--media::before { content:none!important; display:none!important; filter:none!important; }
.stage-v8 .v8-scene--tech::after,
.stage-v8 .v8-scene--media::after { content:none!important;display:none!important; }
.stage-v8 .v83-responsive-art,
.stage-v8 .v8-scene--tech,
.stage-v8 .v8-scene--media { background:transparent; }
.stage-v8 .v83-responsive-art img,
.stage-v8 .v8-scene--tech img,
.stage-v8 .v8-scene--media img {
  display:block; width:100%; height:100%;
  object-fit:cover; object-position:center;
  border-radius:0; filter:none!important;
  -webkit-mask-image:none!important; mask-image:none!important;
  mix-blend-mode:normal;
}
@media(max-width:800px){
  .stage-v8 .v83-responsive-art img {object-position:center center;}
}


/* v8.5 — nowe ilustracje TECHNOLOGIE i KOMUNIKACJA.
   Ten sam obraz na komputerze, tablecie i telefonie.
   Brak powielonego tła, blur, maskowania i zoomu. */
.stage-v8[data-mode="1"]::before,
.stage-v8[data-mode="2"]::before,
.stage-v8 .v8-scene--tech::before,
.stage-v8 .v8-scene--tech::after,
.stage-v8 .v8-scene--media::before,
.stage-v8 .v8-scene--media::after{display:none!important;content:none!important;}
.stage-v8 .v8-scene--tech,
.stage-v8 .v8-scene--media{background:#eff7ff;isolation:isolate;}
.stage-v8 .v8-scene--tech>img,
.stage-v8 .v8-scene--media>img{
  display:block!important;position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
  object-fit:cover!important;object-position:center center!important;
  transform:none!important;filter:none!important;opacity:1!important;
  border-radius:0!important;mix-blend-mode:normal!important;
  mask-image:none!important;-webkit-mask-image:none!important;
}
@media(max-width:800px){
  .stage-v8 .v8-scene--tech>img,
  .stage-v8 .v8-scene--media>img{object-fit:cover!important;object-position:50% 50%!important;}
}

/* v8.5 QA — podpis sceny na bardzo wąskich telefonach */
@media(max-width:370px){
  .stage-v8 .stage-art-stage{inset:0 5px 30px;}
  .stage-v8 .stage-graphic-caption{bottom:3px;white-space:nowrap;}
  .stage-v8 .stage-caption-meta{display:none;}
}

/* FACTECH v8.6 — HERO CTA: quiet light sweep and refined feedback */
.hero-actions .hero-cta-shine {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  justify-content: center;
  gap: 0;
  -webkit-tap-highlight-color: transparent;
}
.hero-actions .hero-cta-shine > span {
  position: relative;
  z-index: 1;
}
.hero-actions .hero-cta-shine::before {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
  top: -45%;
  left: 0;
  width: 44%;
  height: 190%;
  background: linear-gradient(90deg,transparent 0%,rgba(255,255,255,.04) 18%,rgba(255,255,255,.32) 49%,rgba(255,255,255,.04) 80%,transparent 100%);
  transform: translateX(-225%) skewX(-22deg);
  opacity: 0;
  will-change: transform;
}
.hero-actions .btn-quiet.hero-cta-shine::before {
  background: linear-gradient(90deg,transparent 0%,rgba(65,138,207,.015) 18%,rgba(114,166,230,.19) 49%,rgba(65,138,207,.015) 80%,transparent 100%);
}
@media (hover:hover) and (pointer:fine) {
  .hero-actions .hero-cta-shine:hover::before {
    animation: factech-cta-glint .86s cubic-bezier(.22,.6,.27,1) both;
  }
}
@keyframes factech-cta-glint {
  0% { transform: translateX(-225%) skewX(-22deg); opacity: 0; }
  14% { opacity: .7; }
  65% { opacity: .85; }
  100% { transform: translateX(420%) skewX(-22deg); opacity: 0; }
}
.hero-actions .hero-cta-shine:focus-visible {
  outline: 2px solid #3c97e8;
  outline-offset: 4px;
}
.hero-actions .hero-cta-shine:active { transform: translateY(0) scale(.985); }
@media (prefers-reduced-motion: reduce) {
  .hero-actions .hero-cta-shine,
  .hero-actions .hero-cta-shine::before { animation: none !important; transition: none !important; }
}


/* v8.8 — Jak pracujemy: scroll-linked progress through three stages */
.feature-steps{position:relative;padding-left:22px;--process-progress:0}
.feature-steps::before,.feature-steps::after{
  content:"";position:absolute;pointer-events:none;left:5px;top:9px;
  width:2px;height:calc(100% - 32px);border-radius:3px
}
.feature-steps::before{background:#e2e9f1}
.feature-steps::after{
  background:linear-gradient(180deg,#13c4dc 0%,#4f93ed 58%,#8576e4 100%);
  transform:scaleY(var(--process-progress,0));transform-origin:top center;
  transition:transform .12s linear;will-change:transform
}
.feature-steps .step{position:relative;transition:border-color .35s ease}
.feature-steps .step>span{transition:color .35s ease}
.feature-steps .step.is-current>span{color:#0aafc8}
.feature-steps .step.is-complete>span{color:#547de1}
.feature-steps .step.is-current{border-bottom-color:#d5e5ef}
.feature-steps .step.is-complete{border-bottom-color:#d8e4f0}
@media(max-width:600px){
  .feature-steps{padding-left:19px}
  .feature-steps::before,.feature-steps::after{left:4px}
}
@media(prefers-reduced-motion:reduce){
  .feature-steps::after{transition:none;will-change:auto}
  .feature-steps .step,.feature-steps .step>span{transition:none}
}


/* FACTECH v8.9 — HERO entrance. Staggered intro for copy; panel comes into view
   via the existing IntersectionObserver .reveal logic (also on mobile scroll). */
@keyframes factech-hero-intro {
  0% { opacity:0; transform:translate3d(0,17px,0); }
  100% { opacity:1; transform:translate3d(0,0,0); }
}
@media (prefers-reduced-motion: no-preference) {
  .hero .hero-eyebrow,
  .hero .hero-copy h1,
  .hero .hero-lead,
  .hero .hero-actions .btn,
  .hero .hero-quiet {
    animation-name: factech-hero-intro;
    animation-duration: .76s;
    animation-timing-function: cubic-bezier(.22,.75,.25,1);
    animation-fill-mode: both;
  }
  .hero .hero-eyebrow { animation-delay: .04s; }
  .hero .hero-copy h1 { animation-delay: .15s; }
  .hero .hero-lead { animation-delay: .29s; }
  .hero .hero-actions .hero-cta-tilt:first-child .btn { animation-delay: .42s; }
  .hero .hero-actions .hero-cta-tilt:nth-child(2) .btn { animation-delay: .50s; }
  .hero .hero-quiet { animation-delay: .62s; }

  .hero .hero-stage.reveal {
    opacity:0;
    transform:translate3d(0,21px,0) scale(.988);
    transition: opacity .95s cubic-bezier(.22,.75,.25,1) .12s,
                transform 1.04s cubic-bezier(.22,.75,.25,1) .12s,
                background .4s ease;
  }
  .hero .hero-stage.reveal.is-visible {
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero .hero-eyebrow,
  .hero .hero-copy h1,
  .hero .hero-lead,
  .hero .hero-actions .btn,
  .hero .hero-quiet { animation:none!important; opacity:1; transform:none; }
  .hero .hero-stage.reveal,
  .hero .hero-stage.reveal.is-visible { opacity:1; transform:none; transition:none; }
}


/* FACTECH v9.0 — sekcje: bardziej warstwowe wejście + HERO głębia */
@keyframes factech-section-item-in {
  0% { opacity: 0; transform: translate3d(0, 18px, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes factech-cta-float {
  0%,100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(0,-2px,0); }
}
@keyframes factech-soft-shadow-breathe {
  0%,100% { opacity: .68; transform: translate3d(0,0,0) scale(.98); }
  50% { opacity: .86; transform: translate3d(0,3px,0) scale(1.02); }
}
@keyframes factech-panel-breathe {
  0%,100% { box-shadow: 0 30px 80px rgba(34,52,80,.11), 0 10px 24px rgba(34,52,80,.07); }
  50% { box-shadow: 0 36px 92px rgba(34,52,80,.145), 0 12px 28px rgba(34,52,80,.09); }
}

@media (prefers-reduced-motion: no-preference) {
  .section-heading.reveal .eyebrow,
  .section-heading.reveal h2,
  .section-heading.reveal p,
  .feature-content.reveal .eyebrow,
  .feature-content.reveal h2,
  .feature-content.reveal p,
  .feature-content.reveal .text-arrow,
  .product-copy.reveal .eyebrow,
  .product-copy.reveal .product-pill,
  .product-copy.reveal h2,
  .product-copy.reveal .product-lead,
  .product-copy.reveal p:not(.product-lead),
  .product-copy.reveal .btn,
  .media-copy.reveal .eyebrow,
  .media-copy.reveal h2,
  .media-copy.reveal p,
  .media-copy.reveal .text-arrow,
  .end-inner.reveal .eyebrow,
  .end-inner.reveal h2,
  .end-inner.reveal .end-bottom,
  .media-preview.reveal,
  .product-visual.reveal,
  .feature-steps .step.reveal,
  .portfolio-tile.reveal,
  .offer-card.reveal,
  .section-cta.reveal {
    will-change: transform, opacity;
  }

  .section-heading.reveal .eyebrow,
  .section-heading.reveal h2,
  .section-heading.reveal p,
  .feature-content.reveal .eyebrow,
  .feature-content.reveal h2,
  .feature-content.reveal p,
  .feature-content.reveal .text-arrow,
  .product-copy.reveal .eyebrow,
  .product-copy.reveal .product-pill,
  .product-copy.reveal h2,
  .product-copy.reveal .product-lead,
  .product-copy.reveal p:not(.product-lead),
  .product-copy.reveal .btn,
  .media-copy.reveal .eyebrow,
  .media-copy.reveal h2,
  .media-copy.reveal p,
  .media-copy.reveal .text-arrow,
  .end-inner.reveal .eyebrow,
  .end-inner.reveal h2,
  .end-inner.reveal .end-bottom {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
  }

  .section-heading.reveal.is-visible .eyebrow,
  .section-heading.reveal.is-visible h2,
  .section-heading.reveal.is-visible p,
  .feature-content.reveal.is-visible .eyebrow,
  .feature-content.reveal.is-visible h2,
  .feature-content.reveal.is-visible p,
  .feature-content.reveal.is-visible .text-arrow,
  .product-copy.reveal.is-visible .eyebrow,
  .product-copy.reveal.is-visible .product-pill,
  .product-copy.reveal.is-visible h2,
  .product-copy.reveal.is-visible .product-lead,
  .product-copy.reveal.is-visible p:not(.product-lead),
  .product-copy.reveal.is-visible .btn,
  .media-copy.reveal.is-visible .eyebrow,
  .media-copy.reveal.is-visible h2,
  .media-copy.reveal.is-visible p,
  .media-copy.reveal.is-visible .text-arrow,
  .end-inner.reveal.is-visible .eyebrow,
  .end-inner.reveal.is-visible h2,
  .end-inner.reveal.is-visible .end-bottom {
    animation: factech-section-item-in .72s cubic-bezier(.22,.75,.25,1) both;
  }

  .section-heading.reveal.is-visible .eyebrow,
  .feature-content.reveal.is-visible .eyebrow,
  .product-copy.reveal.is-visible .eyebrow,
  .media-copy.reveal.is-visible .eyebrow,
  .end-inner.reveal.is-visible .eyebrow { animation-delay: .02s; }
  .section-heading.reveal.is-visible h2,
  .feature-content.reveal.is-visible h2,
  .product-copy.reveal.is-visible h2,
  .media-copy.reveal.is-visible h2,
  .end-inner.reveal.is-visible h2 { animation-delay: .12s; }
  .section-heading.reveal.is-visible p,
  .feature-content.reveal.is-visible p,
  .product-copy.reveal.is-visible .product-pill,
  .product-copy.reveal.is-visible .product-lead,
  .media-copy.reveal.is-visible p { animation-delay: .24s; }
  .feature-content.reveal.is-visible .text-arrow,
  .product-copy.reveal.is-visible p:not(.product-lead),
  .media-copy.reveal.is-visible .text-arrow,
  .end-inner.reveal.is-visible .end-bottom { animation-delay: .36s; }
  .product-copy.reveal.is-visible .btn { animation-delay: .48s; }

  .hero-actions .hero-cta-shine {
    border: 1px solid rgba(90,111,142,.12);
    box-shadow:
      0 16px 32px rgba(24,36,57,.13),
      0 7px 16px rgba(24,36,57,.08),
      inset 0 1px 0 rgba(255,255,255,.10);
    transform: translateZ(0);
    backface-visibility: hidden;
  }
  .hero-actions .btn-dark.hero-cta-shine {
    background: linear-gradient(180deg,#1f2a3d 0%, #17202e 100%);
  }
  .hero-actions .btn-quiet.hero-cta-shine {
    background: linear-gradient(180deg,#ffffff 0%, #f4f7fb 100%);
    border-color: rgba(114,136,170,.16);
    box-shadow:
      0 14px 28px rgba(38,63,104,.08),
      0 6px 14px rgba(38,63,104,.05),
      inset 0 1px 0 rgba(255,255,255,.92);
  }
  .hero-actions .hero-cta-shine:hover {
    transform: translate3d(0,-3px,0) scale(1.012);
    box-shadow:
      0 21px 38px rgba(24,36,57,.16),
      0 10px 20px rgba(24,36,57,.09),
      inset 0 1px 0 rgba(255,255,255,.14);
  }
  .hero-actions .btn-quiet.hero-cta-shine:hover {
    box-shadow:
      0 18px 34px rgba(38,63,104,.11),
      0 8px 18px rgba(38,63,104,.07),
      inset 0 1px 0 rgba(255,255,255,.96);
  }

  .hero .hero-actions .hero-cta-shine {
    animation-name: factech-hero-intro, factech-cta-float;
    animation-duration: .76s, 4.8s;
    animation-timing-function: cubic-bezier(.22,.75,.25,1), ease-in-out;
    animation-fill-mode: both, both;
    animation-iteration-count: 1, infinite;
  }
  .hero .hero-actions .hero-cta-tilt:first-child .hero-cta-shine {
    animation-delay: .42s, 1.30s;
  }
  .hero .hero-actions .hero-cta-tilt:nth-child(2) .hero-cta-shine {
    animation-delay: .50s, 1.90s;
  }

  .hero-stage {
    box-shadow:
      0 34px 110px rgba(32,46,74,.11),
      0 14px 34px rgba(32,46,74,.07),
      inset 0 1px 0 rgba(255,255,255,.65);
  }
  .hero-stage::after {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: -18px;
    height: 46px;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(57,83,122,.20) 0%, rgba(57,83,122,.10) 40%, rgba(57,83,122,0) 76%);
    filter: blur(16px);
    z-index: 0;
    pointer-events: none;
    animation: factech-soft-shadow-breathe 6.2s ease-in-out infinite;
  }
  .hero-stage.is-visible {
    animation: factech-panel-breathe 7.4s ease-in-out 1.1s infinite;
  }
  .hero-stage .stage-panel {
    box-shadow:
      0 20px 48px rgba(41,59,89,.08),
      0 8px 18px rgba(41,59,89,.05);
    border-color: rgba(220,228,238,.95);
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-heading.reveal .eyebrow,
  .section-heading.reveal h2,
  .section-heading.reveal p,
  .feature-content.reveal .eyebrow,
  .feature-content.reveal h2,
  .feature-content.reveal p,
  .feature-content.reveal .text-arrow,
  .product-copy.reveal .eyebrow,
  .product-copy.reveal .product-pill,
  .product-copy.reveal h2,
  .product-copy.reveal .product-lead,
  .product-copy.reveal p:not(.product-lead),
  .product-copy.reveal .btn,
  .media-copy.reveal .eyebrow,
  .media-copy.reveal h2,
  .media-copy.reveal p,
  .media-copy.reveal .text-arrow,
  .end-inner.reveal .eyebrow,
  .end-inner.reveal h2,
  .end-inner.reveal .end-bottom {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
  .hero-stage::after,
  .hero-stage.is-visible,
  .hero-actions .hero-cta-shine { animation: none !important; }
}


/* FACTECH v9.1 — refined pointer-driven 3D tilt (desktop mouse only).
   The outer wrappers rotate; inner elements keep their independent reveal,
   shimmer, idle float and parallax animations. */
.hero-cta-tilt {
  --tilt-rx: 0deg;
  --tilt-ry: 0deg;
  display: inline-flex;
  position: relative;
  transform: perspective(850px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry));
  transform-style: preserve-3d;
  transition: transform .44s cubic-bezier(.2,.85,.25,1);
  will-change: transform;
  backface-visibility: hidden;
}
.hero-cta-tilt.is-tilting {
  transition-duration: .15s;
  transition-timing-function: ease-out;
}
.hero-cta-tilt > .btn { position: relative; }
.hero-stage-tilt {
  --tilt-rx: 0deg;
  --tilt-ry: 0deg;
  position: relative;
  width: 100%;
  min-width: 0;
  transform: perspective(1500px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry));
  transform-style: preserve-3d;
  transition: transform .60s cubic-bezier(.2,.82,.25,1);
  will-change: transform;
  backface-visibility: hidden;
}
.hero-stage-tilt.is-tilting {
  transition-duration: .20s;
  transition-timing-function: ease-out;
}
.hero-stage-tilt > .hero-stage {
  width: 100%;
  transform-style: preserve-3d;
}
@media (hover:hover) and (pointer:fine) {
  .hero-stage-tilt.is-tilting .hero-stage {
    border-color: rgba(157,175,203,.37);
  }
  .hero-cta-tilt.is-tilting > .hero-cta-shine {
    box-shadow: 0 23px 42px rgba(33,51,78,.16),0 10px 20px rgba(33,51,78,.08),inset 0 1px 0 rgba(255,255,255,.13);
  }
  .hero-cta-tilt.is-tilting > .btn-quiet {
    box-shadow: 0 20px 38px rgba(33,51,78,.105),0 9px 18px rgba(33,51,78,.06),inset 0 1px 0 rgba(255,255,255,.96);
  }
}
@media (max-width:600px) {
  .hero-actions .hero-cta-tilt { width: 100%; display: flex; }
  .hero-actions .hero-cta-tilt > .btn { width: 100%; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-cta-tilt,.hero-stage-tilt { transform:none!important;transition:none!important;will-change:auto; }
}

/* Coarse/touch pointers should never composite the panel in 3D. */
@media (hover:none), (pointer:coarse) {
  .hero-cta-tilt,.hero-stage-tilt {transform:none!important;transition:none!important;will-change:auto;}
}



/* v9.2 — PRYWATNY SZKIC FACFENCE. NIE PUBLIKOWAĆ NA SERWERZE. */
.product-v92 { background:#fff; padding-top:118px; padding-bottom:124px; }
.product-v92-grid { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); align-items:center; gap:clamp(32px,5vw,86px); }
.product-v92-copy { min-width:0; }
.product-v92-copy .eyebrow { color:#718aa3; }
.product-v92-copy h2 { font-size:clamp(58px,6vw,98px); line-height:1.02; letter-spacing:-.068em; font-weight:750; margin:15px 0 22px; color:#172334; }
.product-v92-tagline { font-size:clamp(21px,2.2vw,30px); line-height:1.28; font-weight:690; color:#273a50; letter-spacing:-.035em; margin:0 0 22px; max-width:560px; }
.product-v92-desc { max-width:550px; font-size:14px; color:#69798b; line-height:1.88; margin:0 0 13px; }
.product-v92-points { padding:0; margin:26px 0 26px; list-style:none; display:grid; gap:11px; }
.product-v92-points li { display:flex; align-items:flex-start; gap:12px; font-size:13px; color:#42566c; font-weight:590; line-height:1.55; }
.product-v92-point-dot { flex:0 0 7px; width:7px; height:7px; border-radius:50%; margin-top:7px; background:#27b7d6; box-shadow:0 0 0 4px rgba(39,183,214,.095); }
.product-v92-button-tilt, .product-v92-media-tilt { --tilt-rx:0deg; --tilt-ry:0deg; transform:perspective(1000px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry)); transform-style:preserve-3d; transition:transform .58s cubic-bezier(.2,.82,.22,1); will-change:transform; backface-visibility:hidden; }
.product-v92-button-tilt { display:inline-flex; border-radius:999px; }
.product-v92-button-tilt.is-tilting, .product-v92-media-tilt.is-tilting {transition-duration:.12s;transition-timing-function:ease-out;}
.product-v92-button { position:relative; display:inline-flex; overflow:hidden; isolation:isolate; background:linear-gradient(180deg,#243248 0%,#152134 100%); box-shadow:0 16px 36px rgba(31,53,79,.18),0 7px 15px rgba(31,53,79,.08),inset 0 1px 0 rgba(255,255,255,.11); border:1px solid rgba(74,100,134,.15); border-radius:999px; min-height:54px; padding:15px 25px; text-decoration:none; color:white; }
.product-v92-button > span { position:relative; z-index:1; }
.product-v92-button::before { content:""; position:absolute; top:-50%;left:-60%;width:42%;height:200%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent); transform:skewX(-20deg); opacity:0; pointer-events:none; }
.product-v92-button:hover { box-shadow:0 21px 45px rgba(31,53,79,.22),0 9px 20px rgba(31,53,79,.1); }
@keyframes facfence-v92-shine {0%{left:-60%;opacity:0}20%{opacity:.7}100%{left:125%;opacity:0}}
@media (hover:hover) and (pointer:fine){.product-v92-button:hover::before{animation:facfence-v92-shine .82s ease both;}}
.product-v92-disclaimer { margin:22px 0 0; max-width:530px; font-size:11px; line-height:1.6; color:#9aa6b6; }
.product-v92-media-tilt { position:relative; min-width:0; border-radius:26px; transform-origin:center; }
.product-v92-media { display:block; margin:0; position:relative; isolation:isolate; overflow:hidden; border-radius:26px; min-height:480px; aspect-ratio:1.11; background:#e6eef4; border:1px solid rgba(202,217,232,.66); box-shadow:0 34px 90px rgba(41,62,92,.17),0 12px 26px rgba(41,62,92,.09); }
.product-v92-media::after {content:"";position:absolute;inset:60% 0 0;background:linear-gradient(to top,rgba(17,31,48,.67),transparent);pointer-events:none;}
.product-v92-media img {display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:60% 50%;filter:none;}
.product-v92-photo-tag {position:absolute;z-index:1;top:21px;left:22px;border:1px solid rgba(255,255,255,.6);border-radius:100px;background:rgba(255,255,255,.87);box-shadow:0 8px 24px rgba(16,37,61,.08);padding:8px 13px;font-size:9px;letter-spacing:.13em;color:#34536a;font-weight:800;backdrop-filter:blur(8px)}
.product-v92-photo-caption {position:absolute;z-index:1;left:26px;bottom:24px;right:25px;color:#fff;display:grid;gap:3px;}
.product-v92-photo-caption strong {font-size:19px;line-height:1.22;letter-spacing:-.03em;font-weight:720;text-shadow:0 2px 8px rgba(0,0,0,.2)}
.product-v92-photo-caption small {font-size:11px;color:rgba(255,255,255,.8);}
@media(max-width:900px){.product-v92-grid{grid-template-columns:1fr;gap:34px}.product-v92-media-tilt{max-width:720px;width:100%;}.product-v92-media{min-height:400px;aspect-ratio:1.5}.product-v92{padding-top:90px;padding-bottom:90px}}
@media(max-width:600px){.product-v92{padding-top:76px;padding-bottom:80px}.product-v92-copy h2{font-size:clamp(52px,12vw,70px);margin-bottom:18px}.product-v92-tagline{font-size:23px}.product-v92-desc{font-size:13px}.product-v92-media{min-height:360px;aspect-ratio:1.11;border-radius:20px}.product-v92-media-tilt{border-radius:20px}.product-v92-button-tilt{width:100%;display:flex}.product-v92-button{justify-content:center;width:100%}.product-v92-photo-caption{left:20px;right:20px;bottom:20px}.product-v92-photo-caption strong{font-size:17px}}
@media (prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.product-v92-button-tilt,.product-v92-media-tilt{transform:none!important;will-change:auto;transition:none!important}}


/* v9.3 — FACFENCE: Id-18 prominently visible, carefully staged appearance. */
.product-v93-compliance { display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; margin:0 0 23px; max-width:100%; font-size:12px; line-height:1.5; font-weight:680; color:#2e637a; }
.product-v93-id { display:inline-flex; align-items:center; border-radius:100px; padding:7px 12px; border:1px solid #bceaf5; background:#effcff; color:#117f9d; font-size:11px; letter-spacing:.095em; font-weight:810; box-shadow:0 5px 13px rgba(16,168,196,.055); }
.product-v93-media-entrance { position:relative; min-width:0; border-radius:26px; }
.product-v93-media-entrance .product-v92-media-tilt { width:100%; }
.product-v93 .product-v92-copy .product-v92-desc { max-width:550px; }
@media(prefers-reduced-motion:no-preference){
 .product-v93 .product-v92-copy.reveal > * { will-change:transform,opacity; }
 .product-v93 .product-v92-copy.reveal > :is(.eyebrow,h2,.product-v92-tagline,.product-v93-compliance,.product-v92-desc,.product-v92-points,.product-v92-actions,.product-v92-disclaimer) { opacity:0; transform:translate3d(0,16px,0); }
 .product-v93 .product-v92-copy.reveal.is-visible > :is(.eyebrow,h2,.product-v92-tagline,.product-v93-compliance,.product-v92-desc,.product-v92-points,.product-v92-actions,.product-v92-disclaimer) { animation:factech-section-item-in .7s cubic-bezier(.22,.75,.25,1) both; }
 .product-v93 .product-v92-copy.reveal.is-visible > h2 { animation-delay:.07s; }
 .product-v93 .product-v92-copy.reveal.is-visible > .product-v92-tagline { animation-delay:.15s; }
 .product-v93 .product-v92-copy.reveal.is-visible > .product-v93-compliance { animation-delay:.25s; }
 .product-v93 .product-v92-copy.reveal.is-visible > .product-v92-desc:first-of-type { animation-delay:.29s; }
 .product-v93 .product-v92-copy.reveal.is-visible > .product-v92-desc:nth-of-type(2) { animation-delay:.37s; }
 .product-v93 .product-v92-copy.reveal.is-visible > .product-v92-points { animation-delay:.43s; }
 .product-v93 .product-v92-copy.reveal.is-visible > .product-v92-actions { animation-delay:.53s; }
 .product-v93 .product-v92-copy.reveal.is-visible > .product-v92-disclaimer { animation-delay:.59s; }
}
@media(max-width:700px) and (prefers-reduced-motion:no-preference){
 /* A dedicated later mobile observer triggers this entrance; keep scrolling emphasis. */
 .offer-card.reveal:nth-child(n) {
   opacity:0;
   transform:translate3d(0,36px,0) scale(.985);
   transition:opacity .95s cubic-bezier(.22,.75,.25,1),
              transform 1.00s cubic-bezier(.22,.75,.25,1),
              border-color .25s ease, box-shadow .25s ease;
   transition-delay:0s;
 }
 .offer-card.reveal.is-visible {
   opacity:1;
   transform:translate3d(0,calc(-5px * var(--scroll-progress, 0)),0) scale(1);
 }
}
@media(max-width:600px){
 .product-v93-compliance { gap:8px; font-size:11px; }
 .product-v93-id { font-size:10px; }
 .product-v93-media-entrance { border-radius:20px; }
}
@media(prefers-reduced-motion:reduce){
 .product-v93 .product-v92-copy.reveal > *,
 .offer-card.reveal,.offer-card.reveal.is-visible{opacity:1!important;transform:none!important;animation:none!important;transition:none!important;}
}


/* FACTECH v9.4 — FACFENCE mobile full-frame photo, identical CTA as HERO,
   and earlier (but still visible) mobile offer-card entrances. */
.product-v92-actions.hero-actions { margin-top:24px; display:flex; align-items:center; }
.product-v92-actions .hero-cta-tilt { border-radius:999px; }
.product-v92-actions .hero-cta-shine { min-height:54px; }
@media (prefers-reduced-motion:no-preference) {
  /* The same quiet floating motion and glossy sweep used by the HERO CTA. */
  .product-v92-actions .hero-cta-shine {
    animation: factech-cta-float 4.8s ease-in-out 1.3s infinite both;
  }
}
@media(max-width:900px) {
  /* Preserve the original 4:3 photograph: do not crop its track or barrier. */
  .product-v93 .product-v93-media-entrance,
  .product-v93 .product-v92-media-tilt { min-width:0; max-width:100%; width:100%; }
  .product-v93 .product-v92-media {
    display:block;
    width:100%;
    min-height:0;
    height:auto;
    aspect-ratio:4 / 3;
  }
  .product-v93 .product-v92-media img {
    display:block;
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    max-width:100%;
    object-fit:contain;
    object-position:center;
  }
}
@media(max-width:700px) and (prefers-reduced-motion:no-preference) {
  .offer-card.reveal:nth-child(n) {
    transform:translate3d(0,26px,0) scale(.99);
    transition: opacity .82s cubic-bezier(.22,.75,.25,1),
                transform .87s cubic-bezier(.22,.75,.25,1),
                border-color .25s ease, box-shadow .25s ease;
  }
  .offer-card.reveal.is-visible {
    transform:translate3d(0,calc(-5px * var(--scroll-progress,0)),0) scale(1);
  }
}
@media(max-width:600px) {
  .product-v92-actions.hero-actions { align-items:stretch; }
  .product-v92-actions .hero-cta-tilt,
  .product-v92-actions .hero-cta-shine { display:flex; width:100%; }
  .product-v93 .product-v92-photo-tag { top:13px;left:13px;font-size:8px;padding:6px 10px; }
  .product-v93 .product-v92-photo-caption { left:15px;right:15px;bottom:14px; }
  .product-v93 .product-v92-photo-caption strong {font-size:16px;}
}


/* FACTECH v9.5 / dedicated wide-scope service pages — isolated class namespace. */
.svc-page{overflow:clip;--svc-accent:#20bbd4;--svc-secondary:#6d89f6}
.svc-hero{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:clamp(32px,5vw,80px);align-items:center;padding:100px 0 118px;min-height:650px}
.svc-kicker{display:inline-flex;align-items:center;gap:5px;color:#8998ac;font-size:10px;letter-spacing:.13em;font-weight:780;line-height:1.5}
.svc-kicker .eyebrow-dot{background:var(--svc-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--svc-accent) 12%,transparent)}
.svc-hero-copy{min-width:0}
.svc-hero h1{font-size:clamp(52px,5.3vw,82px);line-height:1.065;letter-spacing:-.063em;margin:27px 0 30px;max-width:780px}
.svc-hero-lead{max-width:625px;color:#66768b;font-size:clamp(17px,1.45vw,20px);line-height:1.75;margin:0}
.svc-actions{margin-top:31px;gap:12px}
.svc-actions .hero-cta-tilt{flex:none}
.svc-hero-meta{margin-top:56px;color:#a0adbc;font-size:10px;letter-spacing:.115em;font-weight:720;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.svc-hero-meta span{height:1px;width:24px;background:linear-gradient(90deg,var(--svc-accent),var(--svc-secondary))}
.svc-visual{height:456px;position:relative;overflow:hidden;isolation:isolate;border:1px solid #e2eaf3;background:linear-gradient(155deg,#f9fdff,#f3f8ff 55%,#faf8ff);border-radius:27px;box-shadow:0 30px 75px rgba(31,58,93,.12),0 7px 21px rgba(31,58,93,.04);padding:25px 23px;min-width:0}
.svc-visual:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 65% 55% at 44% 46%,color-mix(in srgb,var(--svc-accent) 12%,transparent),transparent),radial-gradient(ellipse 65% 60% at 80% 77%,color-mix(in srgb,var(--svc-secondary) 9%,transparent),transparent);pointer-events:none}
.svc-visual-top,.svc-visual-bottom{position:relative;z-index:2;display:flex;justify-content:space-between;gap:8px;align-items:center;color:#8a9aad;font-size:9px;letter-spacing:.15em;font-weight:780}
.svc-visual-top i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;background:var(--svc-accent);box-shadow:0 0 0 4px rgba(76,150,238,.1)}
.svc-visual-bottom{position:absolute;bottom:25px;left:25px;right:25px}
.svc-diagram{height:345px;position:relative;display:grid;place-items:center;max-width:100%;min-width:0}
.svc-diagram svg{width:100%;height:100%;position:absolute;inset:0;opacity:.86}
.svc-core{position:relative;z-index:2;text-align:center;width:146px;padding:15px 8px;background:rgba(255,255,255,.94);border:1px solid #c9def0;box-shadow:0 20px 50px rgba(54,85,122,.13);border-radius:16px;transform:rotate(-3deg)}
.svc-core span{display:block;font-size:20px;font-weight:850;letter-spacing:-.055em;background:linear-gradient(100deg,var(--svc-accent),var(--svc-secondary));color:transparent;background-clip:text;-webkit-background-clip:text}
.svc-core strong{display:block;color:#26364c;font-size:11px;line-height:1.35;font-weight:700;margin-top:3px}
.svc-node{position:absolute;z-index:1;display:flex;flex-direction:column;gap:2px;background:rgba(255,255,255,.90);border:1px solid #dfeaf4;box-shadow:0 12px 28px rgba(41,80,128,.08);border-radius:12px;padding:10px 12px;max-width:165px;min-width:113px;backdrop-filter:blur(10px)}
.svc-node>span{font-size:10px;line-height:1.35;color:#324964;letter-spacing:.025em;font-weight:780;overflow-wrap:anywhere}.svc-node>b{font-size:9px;letter-spacing:.11em;color:var(--svc-accent)}
.svc-node-a{left:0;top:17%}.svc-node-b{right:0;top:11%}.svc-node-c{left:1%;bottom:14%}.svc-node-d{right:0;bottom:11%}
.svc-lead-band{background:#f7f9fc;border-block:1px solid #eef2f6;padding:78px 0}
.svc-lead-layout{display:grid;grid-template-columns:.95fr 1fr;gap:9%;align-items:center}
.svc-lead-layout h2,.svc-section-head h2,.svc-sectors h2,.svc-faq-band h2{font-size:clamp(34px,3.55vw,53px);line-height:1.14;letter-spacing:-.054em;margin:17px 0 0}
.svc-lead-layout h2 span{color:#8c98a7}.svc-lead-layout>p{color:#6c7b8e;line-height:1.88;font-size:16px;margin:0;max-width:600px}
.svc-offer-section{padding:111px 0 115px}.svc-section-head{display:flex;justify-content:space-between;align-items:end;gap:8%;margin-bottom:45px}.svc-section-head h2{margin-top:13px}.svc-section-head>p{max-width:410px;margin:0 0 5px;line-height:1.8;color:#78869a;font-size:14px}
.svc-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.svc-card{border:1px solid #e4eaf2;background:#fcfdff;border-radius:20px;padding:27px 30px 25px;min-height:258px;position:relative;overflow:hidden;transition:box-shadow .35s,transform .35s,border-color .35s}
.svc-card:before{content:'';position:absolute;inset:0;opacity:0;pointer-events:none;background:radial-gradient(circle at 86% 10%,color-mix(in srgb,var(--svc-accent) 9%,transparent),transparent 53%);transition:opacity .3s}
.svc-card-top{display:flex;align-items:center;justify-content:space-between}
.svc-card-marker{font-size:10px;letter-spacing:.14em;color:#a2b0c2;font-weight:800}.svc-card-spark{width:8px;height:8px;border:1.5px solid var(--svc-accent);border-radius:50%;background:white}
.svc-card h3{font-size:23px;letter-spacing:-.045em;line-height:1.2;margin:21px 0 10px;font-weight:740}
.svc-card p{color:#728197;line-height:1.77;font-size:13px;margin:0 0 14px}
.svc-card ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.svc-card li{font-size:10px;line-height:1.45;color:#58718b;background:#f2f7fc;border:1px solid #e7edf6;border-radius:999px;padding:5px 9px}
@media(hover:hover) and (pointer:fine){.svc-card:hover{transform:translateY(-5px);box-shadow:0 20px 55px rgba(35,67,100,.10);border-color:#cbd9ea}.svc-card:hover:before{opacity:1}}
.svc-process-band{background:#f6f9fd;padding:105px 0 115px}.svc-process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.svc-process-card{position:relative;border-radius:18px;background:#fff;border:1px solid #e2eaf2;padding:24px 21px;min-height:245px;box-shadow:0 15px 35px rgba(28,58,90,.025)}.svc-process-card>span{color:var(--svc-accent);font-size:10px;letter-spacing:.15em;font-weight:800}.svc-process-card h3{font-size:20px;line-height:1.22;letter-spacing:-.04em;margin:36px 0 11px}.svc-process-card p{color:#77859a;font-size:12px;line-height:1.76;margin:0}
.svc-sectors{padding:116px 0}.svc-sectors-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.svc-sectors h2{margin:18px 0 22px}.svc-sectors-copy>p{font-size:15px;color:#768499;line-height:1.85;max-width:540px}.svc-sector-list{display:flex;flex-direction:column;border-top:1px solid #e1e9f1}.svc-sector{border-bottom:1px solid #e1e9f1;display:flex;align-items:center;gap:15px;padding:20px 7px;font-weight:640;color:#304359;font-size:14px}.svc-sector>span{width:8px;height:8px;flex:none;border:2px solid var(--svc-accent);border-radius:50%}
.svc-faq-band{padding:103px 0;background:#f7f9fc;border-block:1px solid #eaf0f6}.svc-faq-grid{display:grid;grid-template-columns:.84fr 1.16fr;gap:11%}.svc-faq-grid>div>p{max-width:330px;color:#77869a;line-height:1.78;font-size:14px;margin-top:16px}.svc-faq-list{border-top:1px solid #dce5ee}.svc-faq{border-bottom:1px solid #dce5ee;padding:0 1px}.svc-faq summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;padding:22px 0;color:#25364b;font-weight:690;font-size:15px;line-height:1.45;list-style:none}.svc-faq summary::-webkit-details-marker{display:none}.svc-faq summary span{color:var(--svc-accent);font-size:22px;font-weight:400;line-height:1;transition:transform .2s}.svc-faq[open] summary span{transform:rotate(45deg)}.svc-faq p{color:#728196;line-height:1.8;font-size:14px;margin:0 22px 22px 0}
.svc-related{padding:98px 0 106px}.svc-related-head h2{font-size:37px;letter-spacing:-.052em;margin:10px 0 26px}.svc-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.svc-related-link{text-decoration:none;border:1px solid #e2e9f1;border-radius:16px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:16px;font-weight:700;color:#2c3d50;transition:transform .3s,box-shadow .3s,background .3s}.svc-related-link span:last-child{color:var(--svc-accent);font-size:23px;font-weight:400}.svc-related-link:hover{background:#f8fbff;box-shadow:0 14px 35px rgba(25,58,99,.08);transform:translateY(-3px)}
.svc-contact{background:linear-gradient(125deg,#182638,#22324b 70%,#2f3152);padding:87px 0;color:white}.svc-contact-inner{display:flex;justify-content:space-between;align-items:center;gap:38px}.svc-contact-inner .eyebrow{color:#7ccadb}.svc-contact h2{color:white;font-size:clamp(37px,4.2vw,60px);line-height:1.1;letter-spacing:-.055em;margin:16px 0 15px}.svc-contact p{color:#b7c4d6;line-height:1.8;font-size:15px;margin:0;max-width:600px}.svc-contact .hero-cta-tilt{flex:none}
@media(prefers-reduced-motion:no-preference){.svc-page .svc-hero-copy{animation:svc-hero-enter .82s ease .08s both}.svc-visual.reveal.is-visible{transition:opacity .8s ease,transform .85s ease}.svc-visual.reveal{opacity:0;transform:translateY(22px)}.svc-page .svc-visual.reveal.is-visible{opacity:1;transform:translateY(0)} }
@keyframes svc-hero-enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1040px){.svc-hero{grid-template-columns:1fr .95fr;gap:26px}.svc-hero h1{font-size:clamp(46px,5vw,66px)}.svc-hero-meta{margin-top:35px}.svc-visual{height:415px}.svc-node{min-width:105px;max-width:136px}.svc-cards{gap:13px}.svc-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.svc-hero{grid-template-columns:1fr;padding:68px 0 83px;gap:48px;min-height:0}.svc-hero h1{max-width:650px;font-size:clamp(49px,8.7vw,72px)}.svc-visual{max-width:660px;width:100%;margin:auto;height:410px}.svc-lead-layout,.svc-sectors-grid,.svc-faq-grid{grid-template-columns:1fr;gap:28px}.svc-section-head{align-items:flex-start;flex-direction:column;gap:19px}.svc-section-head>p{max-width:640px}.svc-sectors-grid{gap:37px}.svc-contact-inner{align-items:start;flex-direction:column}.svc-process-band,.svc-offer-section,.svc-sectors,.svc-faq-band,.svc-related{padding-top:78px;padding-bottom:80px}}
@media(max-width:600px){.svc-hero{padding:54px 0 70px;gap:34px}.svc-kicker{font-size:8px;letter-spacing:.12em}.svc-hero h1{font-size:clamp(42px,11vw,58px);margin:21px 0 24px}.svc-hero-lead{font-size:16px;line-height:1.72}.svc-hero-meta{font-size:8px;line-height:1.6;margin-top:28px}.svc-actions.hero-actions{align-items:stretch;flex-direction:column}.svc-actions .hero-cta-tilt{width:100%}.svc-actions .hero-cta-shine{width:100%;font-size:12px;white-space:normal;text-align:center}.svc-visual{height:355px;border-radius:20px;padding:17px 13px}.svc-diagram{height:280px}.svc-visual-top,.svc-visual-bottom{font-size:8px;letter-spacing:.12em}.svc-visual-bottom{bottom:17px;left:15px;right:15px}.svc-node{min-width:82px;max-width:108px;padding:8px}.svc-node span{font-size:8px}.svc-node b{font-size:7px}.svc-core{width:115px;padding:10px 5px}.svc-core span{font-size:16px}.svc-core strong{font-size:9px}.svc-lead-band{padding:66px 0}.svc-lead-layout h2,.svc-section-head h2,.svc-sectors h2,.svc-faq-band h2{font-size:clamp(34px,9vw,45px)}.svc-lead-layout>p{font-size:14px}.svc-section-head{margin-bottom:25px}.svc-cards{grid-template-columns:1fr;gap:11px}.svc-card{padding:23px 22px;min-height:0}.svc-card h3{font-size:21px;margin-top:19px}.svc-card p{font-size:13px}.svc-process-grid{grid-template-columns:1fr;gap:11px}.svc-process-card{min-height:0;padding:22px}.svc-process-card h3{margin:21px 0 9px}.svc-sector{font-size:13px;padding:17px 4px}.svc-faq summary{font-size:14px}.svc-related-grid{grid-template-columns:1fr}.svc-related-link{padding:20px;font-size:14px}.svc-contact{padding:70px 0}.svc-contact-inner .hero-cta-tilt,.svc-contact-inner .btn{width:100%}}
@media(max-width:360px){.svc-node{min-width:74px;max-width:97px}.svc-visual{height:337px}.svc-diagram{height:265px}}
@media(prefers-reduced-motion:reduce){.svc-page .svc-hero-copy{animation:none!important}.svc-visual.reveal,.svc-visual.reveal.is-visible{opacity:1!important;transform:none!important}}
/* v9.5 QA: retain the existing cursor-driven 3D tilt after the reveal completes. */
@media (prefers-reduced-motion: no-preference) and (hover:hover) and (pointer:fine){
 .svc-page .svc-visual.hero-stage-tilt.reveal.is-visible{
  transform:perspective(1500px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry));
  transition:transform .55s cubic-bezier(.2,.82,.25,1),opacity .8s ease;
 }
 .svc-page .svc-visual.hero-stage-tilt.is-tilting.reveal.is-visible{transition-duration:.18s}
}


/* FACTECH v9.6 — shared design system: homepage is the source of truth.
   Service pages may vary ONLY the diagram accents via --svc-accent/--svc-secondary.
   Typography, emphasized copy, buttons, shadows and interaction use homepage styles. */
:root {
  --factech-brand-gradient: linear-gradient(95deg,#16bcd9 0%,#498cf5 48%,#ad45e5 100%);
}
.hero h1 em,
.end-cta h2 em,
.inner-hero h1 em,
.svc-page em,
.svc-page .svc-core span {
  font-style: normal;
  background: var(--factech-brand-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
/* Keep type sizes and letter spacing identical to the corresponding homepage role. */
.svc-page .svc-kicker {
  font-size: 10px;
  letter-spacing: .16em;
  font-weight: 760;
  color: #7f8999;
}
.svc-page .svc-kicker .eyebrow-dot {
  background: var(--cyan);
  box-shadow: 0 0 0 4px rgba(18,201,227,.1);
}
.svc-page .svc-hero h1 {
  font-size: clamp(54px,5vw,82px);
  line-height: 1.075;
  letter-spacing: -.062em;
  font-weight: 740;
  margin: 30px 0 27px;
}
.svc-page .svc-hero-lead {
  font-size: clamp(17px,1.45vw,20px);
  line-height: 1.68;
  color: #617084;
}
.svc-page .svc-actions { margin-top: 34px; gap: 12px; }
.svc-page .svc-actions .hero-cta-shine,
.svc-page .svc-contact-actions .hero-cta-shine {
  min-height: 52px;
  font-size: 13px;
  font-weight: 650;
  padding: 15px 23px;
  border-radius: 100px;
  line-height: 1.6;
  white-space: nowrap;
}
/* Exactly the shared .hero-actions > .hero-cta-shine rules handle:
   dark/light surfaces, highlight glint, depth shadow and hover. */
.svc-page .svc-contact-actions {margin: 0; justify-content: flex-end;}
@media (prefers-reduced-motion: no-preference) {
  /* Homepage button's unobtrusive 4.8s floating rhythm, also for service CTAs. */
  .svc-page .svc-actions .hero-cta-shine {
    animation: factech-cta-float 4.8s ease-in-out 1.3s infinite;
  }
  .svc-page .svc-actions .hero-cta-tilt:nth-child(2) .hero-cta-shine {
    animation-delay: 1.9s;
  }
  .svc-page .svc-contact-actions .hero-cta-shine {
    animation: factech-cta-float 4.8s ease-in-out 1.5s infinite;
  }
}
@media (max-width:1040px) {
  .svc-page .svc-hero h1 {font-size: clamp(45px,5.3vw,61px);}
}
@media (max-width:800px) {
  .svc-page .svc-hero h1 {font-size: clamp(49px,8.7vw,72px);}
}
@media (max-width:600px) {
  .svc-page .svc-hero h1 {font-size: clamp(42px,10.5vw,62px);margin: 21px 0 22px;}
  .svc-page .svc-hero-lead {font-size:17px;}
  .svc-page .svc-kicker {font-size: 9px;letter-spacing:.095em;}
  .svc-page .svc-actions .hero-cta-shine,
  .svc-page .svc-contact-actions .hero-cta-shine {font-size:13px;white-space:normal;}
  .svc-page .svc-contact-actions {width:100%;}
}
@media (prefers-reduced-motion: reduce) {
  .svc-page .svc-actions .hero-cta-shine,
  .svc-page .svc-contact-actions .hero-cta-shine {animation:none!important;}
}
@media (max-width:370px) {
  .svc-page .svc-hero h1 {font-size:40px;}
}


/* v10.5 homepage refinements */
.why-section{background:#f7f9fc;padding-top:24px}
.why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.why-card{position:relative;overflow:hidden;border:1px solid #e7ebf2;background:#fff;border-radius:18px;padding:28px 28px 26px;box-shadow:0 18px 48px rgba(32,57,88,.05);transition:transform .34s var(--ease),box-shadow .34s var(--ease),border-color .34s}
.why-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(95deg,#16bcd9 0%,#498cf5 48%,#ad45e5 100%);opacity:.92}
.why-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(32,57,88,.09);border-color:#dde5f0}
.why-kicker{display:block;font-size:10px;letter-spacing:.13em;font-weight:780;color:#7f91a6;margin-bottom:22px}
.why-card h3{font-size:25px;line-height:1.2;letter-spacing:-.05em;margin:0 0 13px}
.why-card p{margin:0;font-size:14px;line-height:1.8;color:#728093}
.portfolio-grid--photos .portfolio-visual{background:#e9eef5;box-shadow:0 18px 50px rgba(33,58,88,.06)}
.portfolio-grid--photos .portfolio-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.01);transition:transform .55s var(--ease)}
.portfolio-grid--photos .portfolio-tile:hover .portfolio-visual img{transform:scale(1.04)}
.portfolio-grid--photos .portfolio-visual::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(to top,rgba(17,31,48,.62),transparent)}
.portfolio-chip{position:absolute;left:21px;bottom:18px;z-index:2;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);padding:7px 11px;font-size:9px;line-height:1;letter-spacing:.12em;font-weight:790;color:#34536a}
.media-logo-card{display:grid;place-items:center;padding:26px 24px 20px;border:1px solid #edf1f6;border-radius:16px;background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%);box-shadow:0 14px 40px rgba(30,58,94,.045)}
.media-logo-card img{display:block;width:min(100%,300px);height:auto}
.media-preview{display:grid;gap:18px}
.media-wire{margin:0}
@media(max-width:960px){.why-grid{grid-template-columns:1fr}.why-card h3{font-size:23px}}
@media(max-width:600px){.why-section{padding-top:6px}.why-grid{gap:12px}.why-card{padding:23px 23px 22px}.why-card h3{font-size:22px}.portfolio-chip{left:15px;bottom:14px;font-size:8px;padding:6px 9px}.media-logo-card{padding:22px 18px}}
