
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--orange:#f15a24;--orange2:#ff7b2f;--blue:#1687c9;--blue2:#0e5fa8;--navy:#0b1722;--ink:#10212e;--muted:#627582;--line:#dbe4e9;--paper:#f6f8f9;--white:#fff;--shadow:0 22px 60px rgba(12,33,46,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.65}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 20%,rgba(241,90,36,.05),transparent 25%),radial-gradient(circle at 85% 30%,rgba(22,135,201,.06),transparent 28%);z-index:-3}.site-shell{position:relative;z-index:1;overflow:visible;background:transparent}#neural-bg{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.78;mix-blend-mode:multiply;will-change:contents}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 40px));margin:auto}.topbar{height:34px;background:#0b1722;color:#c8d6de;display:flex;align-items:center;justify-content:flex-end;gap:22px;padding:0 max(20px,calc((100% - 1180px)/2));font-size:12px;letter-spacing:.02em}.topbar a:hover{color:#fff}.topbar .phone{color:#ff9b6d;font-weight:700}
.nav{position:sticky;top:0;z-index:100;height:84px;display:flex;align-items:center;gap:26px;padding:0 max(20px,calc((100% - 1180px)/2));background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(16,33,46,.08);box-shadow:0 8px 35px rgba(11,23,34,.06)}.logo{width:172px;height:auto}.nav nav{display:flex;align-items:center;gap:5px;margin-left:auto}.nav nav>a,.nav-drop{padding:10px 11px;font-size:13px;font-weight:700;color:#314550;border-radius:10px;cursor:pointer;white-space:nowrap}.nav nav>a:hover,.nav-drop:hover,.nav nav>a.active{background:#eef4f7;color:var(--ink)}.nav-cta{background:var(--orange);color:#fff;padding:12px 17px;border-radius:12px;font-weight:800;font-size:12px;box-shadow:0 10px 25px rgba(241,90,36,.25);white-space:nowrap}.nav-cta:hover{background:#dc4816}.dropdown{position:relative}.dropdown-panel{position:absolute;top:calc(100% + 8px);left:0;width:265px;background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:8px;opacity:0;transform:translateY(-5px);pointer-events:none;transition:.18s ease}.dropdown:hover .dropdown-panel,.dropdown:focus-within .dropdown-panel{opacity:1;transform:none;pointer-events:auto}.dropdown-panel a{display:block;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600}.dropdown-panel a:hover{background:#f0f5f7;color:var(--orange)}.menu{display:none;background:none;border:0;font-size:25px;color:var(--ink);cursor:pointer}
.hero{width:min(1180px,calc(100% - 40px));min-height:670px;margin:auto;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding:80px 0 70px}.kicker,.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--blue);display:flex;gap:9px;align-items:center}.kicker i{width:24px;height:2px;background:var(--orange);display:inline-block}.hero h1,.page-hero h1{font-family:'Space Grotesk';font-size:clamp(48px,6.5vw,82px);line-height:.99;letter-spacing:-.055em;margin:18px 0 25px}.hero h1 span,.page-hero h1 span,h2 span{color:var(--orange)}.hero p,.page-hero p{max-width:720px;color:var(--muted);font-size:17px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:12px;border:1px solid #b9c9d1;font-size:13px;font-weight:800;cursor:pointer}.btn-primary{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 10px 26px rgba(241,90,36,.2)}.btn-primary:hover{background:#dd4b18}.btn-outline:hover{background:#fff}.hero-visual{min-height:500px;position:relative;display:grid;place-items:center}.data-core{width:210px;height:210px;border-radius:50%;background:rgba(255,255,255,.94);border:1px solid #d9e5eb;box-shadow:0 30px 80px rgba(12,33,46,.13);display:grid;place-items:center;position:relative;z-index:3}.data-core img{width:150px}.ring{position:absolute;border:1px solid rgba(22,135,201,.25);border-radius:50%;animation:spin 18s linear infinite}.r1{width:310px;height:310px}.r2{width:430px;height:430px;border-color:rgba(241,90,36,.2);animation-direction:reverse;animation-duration:25s}.r3{width:550px;height:550px;border-style:dashed;opacity:.6;animation-duration:32s}.orbit-label{position:absolute;padding:7px 10px;border:1px solid #dbe5ea;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.08em;box-shadow:0 8px 25px rgba(12,33,46,.06)}.ol1{top:13%;left:14%}.ol2{top:28%;right:2%}.ol3{bottom:18%;right:10%}.ol4{bottom:9%;left:17%}@keyframes spin{to{transform:rotate(360deg)}}
.trust{background:#fff;border-block:1px solid var(--line)}.trust .container{display:grid;grid-template-columns:repeat(4,1fr)}.trust-item{padding:24px 18px;border-right:1px solid var(--line)}.trust-item:last-child{border-right:0}.trust-item b{font-family:'Space Grotesk';font-size:27px}.trust-item span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-top:3px}
.section{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:95px 0;background:transparent}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}.section-head h2{font-family:'Space Grotesk';font-size:clamp(34px,4vw,55px);line-height:1.05;letter-spacing:-.04em;margin:8px 0 0}.section-head p{max-width:520px;color:var(--muted)}.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card,.info-card,.job-card,.news-card,.mini-card{background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:20px;padding:25px;box-shadow:0 10px 35px rgba(12,33,46,.04)}.service-card{min-height:230px;position:relative;overflow:hidden}.service-card:after{content:"";position:absolute;right:-35px;bottom:-45px;width:120px;height:120px;border-radius:50%;background:rgba(22,135,201,.08)}.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);transition:.2s}.service-no{font-size:10px;color:var(--orange);font-weight:900;letter-spacing:.16em}.service-card h3,.info-card h3,.job-card h3,.news-card h3{font-family:'Space Grotesk';font-size:23px;line-height:1.1;margin:28px 0 10px}.service-card p,.info-card p,.job-card p,.news-card p{color:var(--muted);font-size:14px}.service-card a{font-size:12px;font-weight:800;color:var(--blue)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:stretch}.dark-panel{background:var(--navy);color:#fff;border-radius:26px;padding:45px;position:relative;overflow:hidden}.dark-panel:after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;right:-160px;top:-160px;border:1px solid rgba(255,255,255,.13);box-shadow:0 0 0 40px rgba(255,255,255,.02),0 0 0 80px rgba(255,255,255,.02)}.dark-panel h2{font-family:'Space Grotesk';font-size:43px;line-height:1.03;margin:10px 0 15px}.dark-panel p{color:#b9cbd5}.bullet-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.bullet{padding:11px 13px;border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#dce7ec;font-size:12px}.metric-panel{display:grid;grid-template-columns:1fr 1fr;gap:15px}.metric{background:#fff;border:1px solid var(--line);border-radius:20px;padding:25px;min-height:160px}.metric strong{font-family:'Space Grotesk';font-size:43px}.metric p{margin:5px 0 0;color:var(--muted);font-size:12px}
.news-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.news-card time{font-size:10px;color:var(--orange);font-weight:900}.news-card h3{font-size:18px;margin-top:16px}.cta-band{width:min(1180px,calc(100% - 40px));margin:20px auto 95px;background:linear-gradient(120deg,#0b1722,#133b50);border-radius:28px;color:#fff;padding:58px;position:relative;overflow:hidden}.cta-band:after{content:"";position:absolute;inset:-50%;background:radial-gradient(circle,transparent 0 48%,rgba(255,255,255,.04) 49% 49.3%,transparent 50%);background-size:90px 90px;transform:rotate(10deg)}.cta-band>*{position:relative;z-index:1}.cta-band h2{font-family:'Space Grotesk';font-size:48px;line-height:1.02;margin:12px 0}.cta-band p{color:#bed0da}
.page-hero{width:min(1180px,calc(100% - 40px));margin:auto;padding:90px 0 55px}.page-hero h1{font-size:clamp(48px,6vw,74px)}.detail-list{width:min(1180px,calc(100% - 40px));margin:auto}.detail{display:grid;grid-template-columns:75px 1fr 330px;gap:30px;padding:55px 0;border-top:1px solid var(--line);scroll-margin-top:100px}.detail .index{font-family:'Space Grotesk';font-size:28px;color:#a6b6be}.detail h2{font-family:'Space Grotesk';font-size:40px;line-height:1.05;margin:8px 0 18px}.detail .content>p{color:var(--muted);font-size:15px}.tag{display:inline-flex;padding:6px 9px;background:#edf5f8;color:var(--blue2);font-size:9px;font-weight:900;letter-spacing:.14em;border-radius:99px}.visual{min-height:240px;border-radius:22px;background:linear-gradient(135deg,#fff,#eaf3f6);border:1px solid var(--line);position:relative;overflow:hidden}.visual:before,.visual:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(22,135,201,.25)}.visual:before{width:220px;height:220px;left:40px;top:25px}.visual:after{width:120px;height:120px;right:35px;bottom:30px;border-color:rgba(241,90,36,.3)}.visual .dot{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 10px rgba(241,90,36,.1)}.d1{left:28%;top:28%}.d2{right:25%;top:50%;background:var(--blue)!important}.d3{left:45%;bottom:18%}
.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0}.feature-list li,.plain-list li{padding:11px 14px;background:#fff;border:1px solid var(--line);border-radius:12px;list-style:none;font-size:13px}.feature-list,.plain-list{padding:0}.portfolio-grid{width:min(1180px,calc(100% - 40px));margin:auto;display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.case{grid-column:span 6;background:#0d1c27;color:#fff;border-radius:24px;min-height:330px;padding:30px;position:relative;overflow:hidden}.case:nth-child(3){grid-column:span 4}.case:nth-child(4){grid-column:span 8}.case:nth-child(5),.case:nth-child(6){grid-column:span 6}.case:after{content:"";position:absolute;width:270px;height:270px;border-radius:50%;border:1px solid rgba(255,255,255,.12);right:-80px;bottom:-100px;box-shadow:0 0 0 45px rgba(255,255,255,.025),0 0 0 90px rgba(255,255,255,.018)}.case h2{font-family:'Space Grotesk';font-size:44px;line-height:1.02;margin:45px 0 12px;max-width:70%}.case p{color:#b9cbd5;max-width:500px}.meta{font-size:9px;letter-spacing:.14em;color:#ff9365;font-weight:900}.go{position:absolute;right:28px;top:28px;width:36px;height:36px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:grid;place-items:center}.portfolio-sites{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:100px 0}.portfolio-sites h2{font-family:'Space Grotesk';font-size:48px;line-height:1;margin:8px 0 12px}.portfolio-sites>p{color:var(--muted);max-width:700px}.web-projects{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:35px}.project-shot{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:24px;padding:15px;box-shadow:var(--shadow);overflow:hidden}.monitor{background:#121c24;border-radius:16px;padding:12px;position:relative}.desk-scene{padding:0;background:url("../images/portfolio-desk.webp") center/cover no-repeat;aspect-ratio:1099/607;border-radius:18px;overflow:hidden;box-shadow:0 18px 45px rgba(12,33,46,.16)}.desk-scene .monitor-bar{display:none}.desk-scene .monitor-screen{position:absolute;left:34.7%;top:10.8%;width:47.2%;height:70.5%;aspect-ratio:auto;border-radius:2px;background:#f8fafb;overflow:hidden;box-shadow:0 0 0 2px rgba(10,15,18,.82),0 4px 15px rgba(0,0,0,.22);transform:skewY(-5.8deg) rotate(-0.25deg);transform-origin:center}.desk-scene .monitor-screen:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.16);z-index:3;pointer-events:none;mix-blend-mode:multiply}.desk-scene .monitor-screen:after{content:"LIVE PREVIEW";position:absolute;right:8px;bottom:7px;padding:4px 7px;border-radius:999px;background:rgba(11,23,34,.72);color:#fff;font-size:8px;font-weight:800;letter-spacing:.12em;z-index:4;opacity:.72;pointer-events:none}.desk-scene .monitor-screen img.site-scroll{transform-origin:top left}.desk-scene + .stand{display:none}.desk-scene ~ .counter{display:none}.monitor-screen img.site-scroll{position:absolute;left:0;top:0;width:100%;height:auto;max-width:none;display:block;will-change:transform;transform:translate3d(0,0,0)}.project-shot:hover .monitor-screen img.site-scroll{animation-play-state:paused}.monitor-screen:after{content:'LIVE PREVIEW';position:absolute;right:9px;bottom:8px;padding:4px 7px;border-radius:999px;background:rgba(11,23,34,.72);color:#fff;font-size:8px;font-weight:800;letter-spacing:.12em;opacity:.72;pointer-events:none}.monitor-screen.has-scroll img.site-scroll{animation:sitePreviewScroll 18s cubic-bezier(.42,0,.58,1) infinite alternate}.monitor-screen.has-scroll.slow img.site-scroll{animation-duration:23s}@keyframes sitePreviewScroll{0%,12%{transform:translate3d(0,0,0)}88%,100%{transform:translate3d(0,var(--scroll-distance),0)}}.monitor-bar{height:24px;background:#e9eef1;display:flex;align-items:center;gap:5px;padding:0 8px}.monitor-bar i{width:7px;height:7px;border-radius:50%;background:#b7c4cb}.stand{width:90px;height:18px;background:#243541;margin:0 auto;border-radius:0 0 12px 12px;position:relative}.stand:after{content:"";position:absolute;left:-25px;right:-25px;bottom:-10px;height:10px;border-radius:10px;background:#182832}.counter{height:20px;background:linear-gradient(#c4b6a4,#9f907d);border-radius:12px;margin-top:10px}.project-shot h3{font-family:'Space Grotesk';font-size:22px;margin:18px 4px 3px}.project-shot p{font-size:12px;color:var(--muted);margin:0 4px 4px}.project-shot a{font-size:11px;color:var(--blue2);font-weight:800;margin-left:4px}.shot-note{font-size:10px;color:#8998a1;margin-top:6px}.shot-img{display:block;width:100%;height:100%}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.info-card{scroll-margin-top:100px}.info-card h3{font-size:27px}.info-card ul{padding-left:18px;color:var(--muted);font-size:13px}.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.time-node{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.time-node strong{font-family:'Space Grotesk';font-size:26px;color:var(--orange)}.time-node span{display:block;font-size:12px;color:var(--muted)}
.jobs{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.job-card{scroll-margin-top:100px}.job-card h3{font-size:30px}.job-card h4{margin:24px 0 7px;text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:var(--blue)}.job-card ul{color:var(--muted);font-size:13px;padding-left:18px}.estimate{width:min(900px,calc(100% - 40px));margin:auto  auto 90px}.estimate form{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}fieldset{border:0;border-top:1px solid var(--line);padding:25px 0 5px;margin:0}legend{font-family:'Space Grotesk';font-size:21px;font-weight:700;padding-right:10px}.estimate-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.estimate label{font-size:12px;font-weight:700}.estimate input,.estimate textarea{font:inherit;margin-top:7px;width:100%;padding:12px 13px;border:1px solid #cfdbe1;border-radius:10px;background:#fbfcfd}.option{display:flex!important;align-items:center;gap:9px;padding:10px 12px;background:#f5f8fa;border-radius:10px;margin:6px 0}.option input{width:auto!important;margin:0!important}
footer{background:#09141e;color:#c0d0d8;margin-top:30px;padding:65px max(20px,calc((100% - 1180px)/2)) 25px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px;position:relative}.footer-col{display:flex;flex-direction:column;gap:8px;font-size:12px}.footer-logo{width:150px;filter:brightness(0) invert(1);margin-bottom:7px}.footer-col b{color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px}.footer-col a:hover{color:#fff}.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:20px;font-size:10px;color:#8095a0}
.mobile-panel{display:none}.privacy{max-width:900px}.privacy h2{font-family:'Space Grotesk';margin-top:35px}.privacy p,.privacy li{color:var(--muted);font-size:14px}
@media(max-width:1050px){.nav nav{gap:0}.nav nav>a,.nav-drop{padding:8px 7px;font-size:11px}.nav-cta{padding:10px 12px}.hero{grid-template-columns:1fr}.hero-visual{min-height:420px}.cards-3,.info-grid{grid-template-columns:1fr 1fr}.detail{grid-template-columns:55px 1fr}.detail .visual{grid-column:2}.case:nth-child(n){grid-column:span 6}.news-grid{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.topbar{display:none}.nav{height:70px}.nav nav,.nav-cta{display:none}.menu{display:block;margin-left:auto}.nav.mobile-open{height:auto;flex-wrap:wrap;padding-bottom:15px}.nav.mobile-open nav{display:flex;order:3;width:100%;flex-direction:column;align-items:stretch}.nav.mobile-open nav>a,.nav.mobile-open .nav-drop{width:100%;padding:12px}.nav.mobile-open .dropdown-panel{position:static;width:100%;box-shadow:none;border:0;display:none;opacity:1;transform:none}.nav.mobile-open .dropdown.open .dropdown-panel{display:block}.nav.mobile-open .dropdown-panel a{padding:9px 22px}.hero,.page-hero,.section,.portfolio-sites,.detail-list,.portfolio-grid,.container{width:min(100% - 28px,1180px)}.hero{padding-top:55px;min-height:auto}.hero h1,.page-hero h1{font-size:47px}.hero-visual{transform:scale(.82);margin:-30px 0}.trust .container{grid-template-columns:1fr 1fr}.trust-item{border-bottom:1px solid var(--line)}.cards-3,.info-grid,.jobs,.web-projects,.split{grid-template-columns:1fr}.section{padding:65px 0}.section-head{display:block}.detail{grid-template-columns:1fr;padding:42px 0}.detail .index{font-size:12px}.detail .visual{grid-column:auto}.feature-list,.bullet-grid{grid-template-columns:1fr}.portfolio-grid{display:block}.case{min-height:280px;margin-bottom:16px}.case h2{font-size:36px}.news-grid{grid-template-columns:1fr}.cta-band{width:calc(100% - 28px);padding:38px 25px;margin-bottom:65px}.cta-band h2{font-size:36px}.estimate-grid{grid-template-columns:1fr}footer{grid-template-columns:1fr 1fr;padding-inline:28px}.footer-bottom{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.shot-fallback:after{content:attr(data-site);display:grid;place-items:center;height:100%;font-family:'Space Grotesk';font-size:28px;font-weight:700;color:#183040;background:radial-gradient(circle at 70% 20%,rgba(22,135,201,.12),transparent 35%),linear-gradient(135deg,#f5f8fa,#fff)}

/* Neural background: full viewport layer, stronger around the pointer. */
main,.section,.page-hero,.detail-list,.portfolio-grid,.portfolio-sites,.estimate{position:relative;z-index:1}
.topbar,.nav,footer{position:relative;z-index:5}
@media(max-width:800px){#neural-bg{opacity:.88;mix-blend-mode:multiply}}

/* V5.1 neural field: transparent content layers let the blue network remain visible everywhere. */
main{background:transparent}
.page-hero,.portfolio-sites,.detail-list,.estimate{background:transparent}
.neural-hint{color:var(--blue2);font-weight:700}

/* V6 — full-page blue neural mesh + correctly masked monitor previews */
html,body{overflow-x:hidden}
body{background:rgba(246,248,249,.72)}
body:before{background:radial-gradient(circle at 15% 20%,rgba(22,135,201,.035),transparent 26%),radial-gradient(circle at 85% 30%,rgba(22,135,201,.045),transparent 30%);z-index:-3}
#neural-bg{z-index:0;opacity:.62;mix-blend-mode:multiply;pointer-events:none}
.site-shell{z-index:1}
main,.section,.page-hero,.detail-list,.portfolio-grid,.portfolio-sites,.estimate{position:relative;z-index:1}
.trust{background:rgba(255,255,255,.72)}

/* The supplied desk photo already contains the complete monitor, stand and desk.
   We only place the FireShot inside the monitor's glass area. */
.portfolio-sites{padding-top:110px}
.web-projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:42px}
.project-shot{background:rgba(255,255,255,.84);padding:18px;border-radius:26px;overflow:hidden}
.desk-scene{position:relative;width:100%;aspect-ratio:1099/607;background:url("../images/portfolio-desk.webp") center/100% 100% no-repeat;border-radius:18px;overflow:hidden;box-shadow:0 24px 55px rgba(12,33,46,.15)}
.desk-scene .monitor-screen{position:absolute;left:35.15%;top:11.35%;width:46.25%;height:60.4%;overflow:hidden;background:#f7f8f7;box-shadow:0 0 0 1.5px rgba(7,14,19,.92),inset 0 0 14px rgba(0,0,0,.18);border-radius:1px;clip-path:polygon(4.2% 0%,100% 0%,100% 100%,0% 100%);transform:skewY(-5.55deg);transform-origin:50% 50%}
.desk-scene .monitor-screen:before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(0,0,0,.10));mix-blend-mode:multiply}
.desk-scene .monitor-screen:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(112deg,rgba(255,255,255,.10),transparent 24%,transparent 72%,rgba(0,0,0,.08));opacity:.75}
.monitor-screen img.site-scroll{position:absolute;left:0;top:0;width:100%;height:auto;max-width:none;display:block;will-change:transform;transform:translate3d(0,0,0);transform-origin:top left}
.monitor-screen.has-scroll img.site-scroll{animation:sitePreviewScrollV6 18s cubic-bezier(.4,0,.6,1) infinite alternate}
.monitor-screen.has-scroll.slow img.site-scroll{animation-duration:25s}
.project-shot:hover .monitor-screen img.site-scroll{animation-play-state:paused}
@keyframes sitePreviewScrollV6{0%,14%{transform:translate3d(0,0,0)}86%,100%{transform:translate3d(0,var(--scroll-distance),0)}}
.project-shot h3{margin-top:20px}

@media(max-width:800px){
  #neural-bg{opacity:.68}
  .web-projects{grid-template-columns:1fr;gap:22px}
  .desk-scene .monitor-screen{left:35.1%;top:11.4%;width:46.3%;height:60.3%;transform:skewY(-5.55deg)}
}
@media(prefers-reduced-motion:reduce){#neural-bg{display:none}.monitor-screen.has-scroll img.site-scroll{animation:none!important}}

/* V7 polish: brighter full-field neural network + straight pointer branches. */
#neural-bg{z-index:0;opacity:.9;mix-blend-mode:multiply;}

/* Sticky navigation starts generous, then becomes compact after a small scroll. */
.nav{position:sticky;top:0;height:96px;transition:height .32s ease,padding .32s ease,box-shadow .32s ease,background .32s ease;}
.nav .logo{width:188px;transition:width .32s ease;}
.nav.nav-scrolled{height:72px;padding-top:0;padding-bottom:0;background:rgba(255,255,255,.94);box-shadow:0 10px 32px rgba(11,23,34,.10);}
.nav.nav-scrolled .logo{width:160px;}
.nav.nav-scrolled .nav-cta{transform:scale(.94);transform-origin:right center;}

/* Fixed-height desk scenes: the supplied photo is the room/desk, not the viewport itself. */
.web-projects{align-items:start;}
.project-shot{min-width:0;}
.desk-scene{height:390px;aspect-ratio:auto;background-size:cover;background-position:center;border-radius:18px;}
.desk-scene .monitor-screen{
  left:35.05%;top:11.8%;width:46.0%;height:59.5%;
  transform:none;
  clip-path:polygon(4.4% 0%,100% 0%,96.8% 100%,0 96.5%);
  border:0;
  box-shadow:0 0 0 2px rgba(7,14,19,.88),inset 0 0 16px rgba(0,0,0,.14);
  background:#fff;
}
.desk-scene .monitor-screen img.site-scroll{width:100%;height:auto;transform:none;}
.monitor-screen.has-scroll img.site-scroll{animation:sitePreviewScrollV7 var(--scroll-duration,18s) cubic-bezier(.42,0,.58,1) infinite alternate;}
.project-shot:hover .monitor-screen.has-scroll img.site-scroll{animation-play-state:paused;}
@keyframes sitePreviewScrollV7{0%,10%{transform:translate3d(0,0,0)}90%,100%{transform:translate3d(0,var(--scroll-distance),0)}}

@media(max-width:1050px){
  .nav{height:88px}.nav .logo{width:175px}.nav.nav-scrolled{height:70px}.nav.nav-scrolled .logo{width:155px}
}
@media(max-width:800px){
  .nav{height:74px;padding-inline:14px;}
  .nav .logo{width:155px;}
  .nav.nav-scrolled{height:64px;}
  .nav.nav-scrolled .logo{width:142px;}
  .nav.mobile-open{height:auto;min-height:74px;}
  .nav.mobile-open.nav-scrolled{height:auto;min-height:64px;}
  .desk-scene{height:310px;}
  .desk-scene .monitor-screen{left:35.1%;top:11.6%;width:46.1%;height:59.8%;}
}
@media(max-width:520px){
  .desk-scene{height:250px;border-radius:14px;}
  .desk-scene .monitor-screen{left:35%;top:11.7%;width:46.2%;height:59.2%;}
}
@media(prefers-reduced-motion:reduce){
  .nav,.nav .logo{transition:none!important}
  .monitor-screen.has-scroll img.site-scroll{animation:none!important}
}


/* V8 portfolio correction: preserve the supplied desk photo proportions.
   The FireShot itself is the only tall asset and is clipped/animated inside a
   fixed monitor-glass viewport. */
.web-projects{align-items:start;}
.project-shot{min-width:0;}
.desk-scene{
  position:relative;
  width:100%;
  height:auto;
  aspect-ratio:1099 / 607;
  background-size:100% 100%;
  background-position:center;
  background-repeat:no-repeat;
  overflow:hidden;
}
.desk-scene .monitor-screen{
  position:absolute;
  left:35.05%;
  top:11.8%;
  width:46.0%;
  height:59.5%;
  overflow:hidden;
  transform:none;
  clip-path:polygon(4.4% 0%,100% 0%,96.8% 100%,0 96.5%);
  border:0;
  border-radius:1px;
  background:#fff;
  box-shadow:0 0 0 2px rgba(7,14,19,.88),inset 0 0 16px rgba(0,0,0,.14);
}
.monitor-screen img.site-scroll{
  position:absolute;
  left:0; top:0;
  width:100%; height:auto;
  max-width:none;
  display:block;
  transform:translate3d(0,0,0);
  transform-origin:top left;
  will-change:transform;
}
.monitor-screen.has-scroll img.site-scroll{
  animation:sitePreviewScrollV8 var(--scroll-duration,18s) cubic-bezier(.37,0,.63,1) infinite alternate;
}
.project-shot:hover .monitor-screen.has-scroll img.site-scroll{animation-play-state:paused;}
@keyframes sitePreviewScrollV8{
  0%,9%{transform:translate3d(0,0,0)}
  91%,100%{transform:translate3d(0,var(--scroll-distance),0)}
}
@media(max-width:800px){
  .desk-scene{height:auto;aspect-ratio:1099 / 607;}
  .desk-scene .monitor-screen{left:35.1%;top:11.6%;width:46.1%;height:59.8%;}
}
@media(max-width:520px){
  .desk-scene{height:auto;aspect-ratio:1099 / 607;}
  .desk-scene .monitor-screen{left:35%;top:11.7%;width:46.2%;height:59.2%;}
}


/* V9 — fixed navigation + compact physical portfolio scenes + smooth upward neural drift */
body{padding-top:130px}
.topbar{position:fixed;top:0;left:0;right:0;z-index:1100;transition:transform .35s ease,opacity .35s ease}
.nav{position:fixed;top:34px;left:0;right:0;width:100%;z-index:1090;height:96px;transition:top .35s ease,height .35s ease,padding .35s ease,box-shadow .35s ease,background .35s ease}
.nav.nav-scrolled{top:0;height:72px}
.topbar.topbar-hidden{transform:translateY(-100%);opacity:0}

/* The desk photograph stays compact. The monitor glass is a fixed viewport;
   the tall FireShot is clipped and only its visible slice is shown. */
.desk-scene{width:min(540px,100%);margin-inline:auto;aspect-ratio:1099/607;height:auto;background-size:100% 100%}
.desk-scene .monitor-screen{left:35.05%;top:11.8%;width:46%;height:154px;transform:none;clip-path:polygon(4.4% 0%,100% 0%,96.8% 100%,0 96.5%)}
.monitor-screen img.site-scroll{width:100%;height:auto}

/* A second, very slow vertical current makes the whole mesh drift upward. */

@media(max-width:1050px){
  body{padding-top:122px}
  .nav{top:34px;height:88px}
  .nav.nav-scrolled{top:0;height:70px}
  .desk-scene{width:min(500px,100%)}
  .desk-scene .monitor-screen{height:140px}
}
@media(max-width:800px){
  body{padding-top:74px}
  .topbar{display:none}
  .nav,.nav.nav-scrolled{top:0;height:74px}
  .nav.nav-scrolled{height:64px}
  .nav.mobile-open{height:auto;min-height:74px}
  .nav.mobile-open.nav-scrolled{height:auto;min-height:64px}
  .desk-scene{width:min(500px,100%);aspect-ratio:1099/607}
  .desk-scene .monitor-screen{left:35.1%;top:11.6%;width:46.1%;height:112px}
}
@media(max-width:520px){
  body{padding-top:70px}
  .nav,.nav.nav-scrolled{height:70px}
  .desk-scene{width:100%;aspect-ratio:1099/607}
  .desk-scene .monitor-screen{left:35%;top:11.7%;width:46.2%;height:92px}
}
@media(prefers-reduced-motion:reduce){
  .topbar,.nav{transition:none!important}
}

/* CSS monitor mockups — fixed viewport height, tall FireShot scrolls inside */
.project-screen-card .monitor-screen{
  position:relative;
  height:220px;
  overflow:hidden;
  background:#f7f8f7;
  border-radius:0 0 4px 4px;
}
.project-screen-card .monitor-screen img.site-scroll,
.project-screen-card .monitor-screen img.project-page-shot{
  position:absolute;
  left:0;top:0;
  width:100%;height:auto;
  max-width:none;
  display:block;
  transform:translate3d(0,0,0);
  transform-origin:top left;
  will-change:transform;
}
.project-screen-card .monitor-bar span{
  margin-left:auto;
  font-size:8px;
  font-weight:800;
  letter-spacing:.12em;
  color:#627582;
}
.project-copy{margin-top:4px}
.project-copy .meta{font-size:9px;letter-spacing:.14em;color:#ff9365;font-weight:900;margin-bottom:6px}
.project-copy h3{font-family:'Space Grotesk';font-size:22px;margin:0 0 3px}
.project-copy p{font-size:12px;color:var(--muted);margin:0 0 4px}
.project-copy a{font-size:11px;color:var(--blue2);font-weight:800}
@media(max-width:800px){
  .project-screen-card .monitor-screen{height:180px}
}
@media(max-width:520px){
  .project-screen-card .monitor-screen{height:150px}
}

/* V10 — unified sticky header + living neural field */
:root{
  --header-expanded:130px;
  --header-compact:68px;
  --nav-expanded:96px;
  --nav-compact:68px;
  --logo-expanded:188px;
  --logo-compact:152px;
}
body{
  padding-top:var(--header-expanded);
  transition:padding-top .38s cubic-bezier(.4,0,.2,1);
}
body.header-compact{padding-top:var(--header-compact)}

.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1100;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(18px);
  box-shadow:0 8px 35px rgba(11,23,34,.06);
  transition:box-shadow .38s cubic-bezier(.4,0,.2,1),background .38s ease;
}
.site-header.is-compact{
  box-shadow:0 10px 32px rgba(11,23,34,.12);
  background:rgba(255,255,255,.97);
}

.topbar{
  position:relative;
  top:auto;left:auto;right:auto;
  max-height:34px;
  overflow:hidden;
  opacity:1;
  transform:none;
  transition:max-height .38s cubic-bezier(.4,0,.2,1),opacity .32s ease,padding .38s ease;
}
.site-header.is-compact .topbar,
.topbar.topbar-hidden{
  max-height:0;
  opacity:0;
  padding-top:0;
  padding-bottom:0;
  pointer-events:none;
}

.nav{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  width:100%;
  height:var(--nav-expanded);
  transition:height .38s cubic-bezier(.4,0,.2,1),padding .38s ease,box-shadow .38s ease,background .38s ease;
}
.nav .logo{
  width:var(--logo-expanded);
  transition:width .38s cubic-bezier(.4,0,.2,1);
}
.nav nav>a,.nav-drop{
  transition:padding .38s ease,font-size .38s ease;
}
.nav-cta{
  transition:transform .38s cubic-bezier(.4,0,.2,1),padding .38s ease,font-size .38s ease;
}

.site-header.is-compact .nav,
.nav.nav-scrolled{
  height:var(--nav-compact);
}
.site-header.is-compact .nav .logo,
.nav.nav-scrolled .logo{
  width:var(--logo-compact);
}
.site-header.is-compact .nav-cta,
.nav.nav-scrolled .nav-cta{
  transform:scale(.93);
  transform-origin:right center;
}

#neural-bg{
  opacity:.82;
  mix-blend-mode:multiply;
}

@media(max-width:1050px){
  :root{
    --header-expanded:122px;
    --header-compact:64px;
    --nav-expanded:88px;
    --nav-compact:64px;
    --logo-expanded:175px;
    --logo-compact:148px;
  }
}
@media(max-width:800px){
  :root{
    --header-expanded:74px;
    --header-compact:62px;
    --nav-expanded:74px;
    --nav-compact:62px;
    --logo-expanded:155px;
    --logo-compact:138px;
  }
  .topbar{display:none}
  .site-header.is-compact .topbar{display:none}
}
@media(max-width:520px){
  :root{
    --header-expanded:70px;
    --header-compact:58px;
    --nav-expanded:70px;
    --nav-compact:58px;
    --logo-expanded:142px;
    --logo-compact:128px;
  }
}
@media(prefers-reduced-motion:reduce){
  body,.site-header,.topbar,.nav,.nav .logo,.nav-cta{transition:none!important}
}

/* Split with compact dark aside — aside stays short, not stretched to match long text */
.split.split-aside{
  align-items:start !important;
  grid-template-columns:minmax(0,1.25fr) minmax(240px,min(340px,.75fr));
  gap:28px;
}
.split-aside > aside,
.split-aside > .dark-panel,
.split-aside > .dark-panel--compact{
  align-self:start !important;
  height:auto !important;
  min-height:0 !important;
}
.split-aside .split-main{min-width:0}
.split-aside .split-title{
  font-family:'Space Grotesk';
  font-size:clamp(32px,4vw,45px);
  line-height:1.05;
  margin:8px 0 18px;
}
.split-aside .split-body{
  color:var(--muted);
  font-size:15px;
  line-height:1.75;
}
.split-aside .split-body ul{
  margin:12px 0 0;
  padding-left:20px;
}
.split-aside .split-body li{margin-bottom:8px}
.split-aside .dark-panel--compact{
  align-self:start !important;
  position:sticky;
  top:calc(var(--header-compact, 68px) + 18px);
  padding:24px 26px;
  max-width:340px;
  width:100%;
  margin-left:auto;
  flex-shrink:0;
}
.content-prose{
  max-width:100%;
}
.content-prose .split-title{
  font-family:'Space Grotesk';
  font-size:clamp(28px,3.5vw,40px);
  line-height:1.08;
  margin:8px 0 18px;
}
.content-prose .split-body{
  color:var(--muted);
  font-size:15px;
  line-height:1.75;
}
.content-prose .split-body h3{
  font-family:'Space Grotesk';
  font-size:22px;
  color:var(--ink);
  margin:28px 0 10px;
}
.content-prose .split-body ul{
  margin:12px 0;
  padding-left:20px;
}

/* V12 — delicate separated text sections site-wide */
.page-content-stack{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.page-content-stack > .content-block,
.page-content-stack > .text-section,
.page-content-stack > .cta-band{
  margin-bottom:0 !important;
}
.page-content-stack .cta-band{
  width:100%;
  max-width:100%;
  margin:0 !important;
  box-sizing:border-box;
}
.text-section{
  background:rgba(255,255,255,.48);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(219,228,233,.58);
  border-radius:22px;
  padding:clamp(26px,3.5vw,38px) clamp(24px,3.5vw,36px);
  box-shadow:0 8px 28px rgba(12,33,46,.028);
  position:relative;
  overflow:hidden;
}
.text-section::before{
  content:"";
  position:absolute;
  top:0;
  left:28px;
  right:28px;
  height:1px;
  background:linear-gradient(90deg,rgba(241,90,36,.42),rgba(22,135,201,.28) 55%,transparent);
  opacity:.85;
  pointer-events:none;
}
.text-section--split{
  padding:clamp(22px,3vw,32px);
}
.text-section--split .split.split-aside{
  gap:24px;
}
.text-section--detail.detail{
  border-top:0 !important;
  padding:clamp(24px,3.5vw,34px) !important;
}
.text-section--detail.detail--solo{
  grid-template-columns:1fr min(330px,40%) !important;
  gap:28px;
}
.text-section--detail.detail--solo .visual{
  grid-column:auto;
}
@media(max-width:1050px){
  .text-section--detail.detail--solo{
    grid-template-columns:1fr !important;
  }
  .text-section--detail.detail--solo .visual{
    grid-column:1 !important;
  }
}
.text-section--detail .content .split-body{
  color:var(--muted);
  font-size:15px;
  line-height:1.75;
}
.text-section--products{
  padding:clamp(20px,3vw,28px);
  background:rgba(255,255,255,.42);
}
.text-section--products .info-grid{
  margin:0;
}
.text-section--media{
  padding:8px;
  background:rgba(255,255,255,.38);
  border:1px solid rgba(219,228,233,.52);
  box-shadow:0 8px 24px rgba(12,33,46,.024);
}
.text-section--job{
  background:rgba(255,255,255,.48);
}
.text-section-meta{
  display:block;
  font-size:11px;
  color:var(--orange);
  font-weight:900;
  letter-spacing:.08em;
  margin-bottom:14px;
}
.text-section .split-body > h3,
.text-section .split-body > h4,
.text-section .split-body > h5{
  font-family:'Space Grotesk';
  font-size:clamp(22px,2.4vw,28px);
  line-height:1.15;
  color:var(--ink);
  margin:34px 0 12px;
  padding-top:26px;
  border-top:1px solid rgba(219,228,233,.88);
}
.text-section .split-body > :first-child,
.text-section .split-body > h3:first-of-type,
.text-section .split-body > h4:first-of-type,
.text-section .split-body > h5:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:0;
}
.remote-help.text-section{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
}

/* Scope strip (webowe) */
.scope-strip{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto var(--space-block);
  background:rgba(255,255,255,.46);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(219,228,233,.56);
  border-radius:22px;
  padding:clamp(22px,3vw,30px);
  box-shadow:0 8px 28px rgba(12,33,46,.028);
}
.scope-strip-title{
  font-family:'Space Grotesk';
  font-size:clamp(24px,3vw,32px);
  line-height:1.08;
  margin:8px 0 16px;
}
.scope-strip-title span{color:var(--orange)}
.scope-strip-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.scope-strip-tags span{
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-size:12px;
  font-weight:700;
  color:var(--ink);
}

/* Split long prose into separate cards */
.prose-chunk.text-section{margin-bottom:0}
.text-section--lead{
  background:rgba(255,255,255,.56);
  border:1px solid rgba(219,228,233,.62);
}
.text-section--lead .split-title{
  font-size:clamp(32px,4vw,46px);
  margin-bottom:16px;
}
.text-section--lead .split-body{
  font-size:16px;
  line-height:1.75;
  max-width:920px;
}
.text-section--section{
  background:rgba(255,255,255,.4);
  border:1px solid rgba(219,228,233,.5);
  border-left:3px solid rgba(241,90,36,.62);
  padding:clamp(20px,2.5vw,28px) clamp(24px,3vw,34px);
  padding-left:clamp(22px,3vw,32px);
}
.text-section--section > .split-title{
  font-family:'Space Grotesk';
  font-size:clamp(22px,2.6vw,30px);
  line-height:1.15;
  margin:0 0 14px;
  color:var(--ink);
}
.text-section--section > .split-title::before{
  content:"";
  display:block;
  width:32px;
  height:2px;
  background:var(--orange);
  margin-bottom:12px;
  border-radius:1px;
}
.text-section--section .prose-section-body,
.text-section--section > .split-body{
  color:var(--muted);
  font-size:15px;
  line-height:1.75;
}
.text-section--section .prose-section-body p,
.text-section--section > .split-body p{
  display:block;
  margin:0 0 12px;
  color:var(--muted);
}
.text-section--section .prose-section-body ul,
.text-section--section > .split-body ul{
  display:block;
  margin:12px 0 0;
  padding-left:20px;
}
.text-section--section .prose-section-body li,
.text-section--section > .split-body li{
  display:list-item;
  margin-bottom:6px;
  color:var(--muted);
}
.text-section--section .prose-section-body strong,
.text-section--section > .split-body strong{
  color:var(--ink);
}
.text-section--cta{
  background:linear-gradient(135deg,rgba(255,255,255,.44),rgba(255,255,255,.36)),linear-gradient(135deg,rgba(241,90,36,.06),rgba(22,135,201,.04));
  border-left-color:rgba(22,135,201,.68);
}
.text-section--cta .split-title{
  font-size:clamp(20px,2.4vw,26px);
}
.text-section .split-body > h2:not(:first-child),
.text-section .split-body > h3:not(:first-child),
.text-section .split-body > h4:not(:first-child),
.text-section .split-body > h5:not(:first-child){
  border-top:0;
  padding-top:0;
  margin-top:0;
}
.text-section--section .prose-section-body > h2,
.text-section--section .prose-section-body > h3,
.text-section--section > .split-body > h2,
.text-section--section > .split-body > h3{
  font-family:'Space Grotesk';
  font-size:20px;
  color:var(--ink);
  margin:22px 0 10px;
}
.prose-chunk.text-section--section,
.prose-chunk.text-section--lead{
  opacity:1 !important;
  transform:none !important;
}
.job-card.split-title{margin-bottom:14px}
.job-card .split-body h4,
.job-card .split-body h6{
  margin:20px 0 8px;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--blue);
}
.trust-bar .trust-item{
  opacity:1;
  transform:none;
}

/* Contact page */
.contact-page{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  padding:var(--space-section) 0;
}
.contact-layout{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:18px;
  align-items:stretch;
}
.contact-panel--info{
  background:var(--navy);
  color:#fff;
  border-radius:22px;
  padding:clamp(26px,3vw,36px);
  position:relative;
  overflow:hidden;
}
.contact-panel--info:after{
  content:"";
  position:absolute;
  width:280px;height:280px;border-radius:50%;
  right:-100px;top:-100px;
  border:1px solid rgba(255,255,255,.1);
  pointer-events:none;
}
.contact-panel-label{color:#ff9a6d!important}
.contact-panel-title{
  font-family:'Space Grotesk';
  font-size:clamp(28px,3.2vw,38px);
  line-height:1.05;
  margin:10px 0 14px;
  position:relative;z-index:1;
}
.contact-company-meta{
  color:#b9cbd5;
  font-size:14px;
  line-height:1.7;
  position:relative;z-index:1;
}
.contact-company-meta p{margin:0 0 8px}
.contact-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
  position:relative;z-index:1;
}
.btn-outline-light{
  border-color:rgba(255,255,255,.28) !important;
  color:#fff !important;
  background:transparent;
}
.btn-outline-light:hover{
  background:rgba(255,255,255,.08);
}
.contact-panel--form{
  background:rgba(255,255,255,.84);
  border:1px solid rgba(219,228,233,.95);
  border-radius:22px;
  padding:clamp(26px,3vw,36px);
  box-shadow:0 10px 36px rgba(12,33,46,.045);
  position:relative;
  overflow:hidden;
}
.contact-panel--form::before{
  content:"";
  position:absolute;
  top:0;
  left:28px;
  right:28px;
  height:1px;
  background:linear-gradient(90deg,rgba(241,90,36,.42),rgba(22,135,201,.28) 55%,transparent);
  opacity:.85;
  pointer-events:none;
}
.contact-form-head .split-title{
  font-family:'Space Grotesk';
  font-size:clamp(28px,3.2vw,36px);
  line-height:1.08;
  margin:8px 0 10px;
}
.contact-form-head p{
  margin:0 0 22px;
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}
.contact-form .v5-alert{
  margin-bottom:16px;
}
.contact-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.contact-field{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.contact-field--full{
  grid-column:1 / -1;
}
.contact-field span{
  font-size:12px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:.02em;
}
.contact-field input,
.contact-field select,
.contact-field textarea{
  width:100%;
  font:inherit;
  padding:12px 13px;
  border:1px solid #cfdbe1;
  border-radius:10px;
  background:#fbfcfd;
  color:var(--ink);
  transition:border-color .15s ease,box-shadow .15s ease;
  box-sizing:border-box;
}
.contact-field select{
  cursor:pointer;
  appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,#627582 50%),linear-gradient(135deg,#627582 50%,transparent 50%);
  background-position:calc(100% - 18px) calc(50% + 2px),calc(100% - 13px) calc(50% + 2px);
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
  padding-right:34px;
}
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus{
  outline:none;
  border-color:rgba(22,135,201,.55);
  box-shadow:0 0 0 3px rgba(22,135,201,.12);
}
.contact-field textarea{
  min-height:140px;
  resize:vertical;
  line-height:1.6;
}
.contact-form-captcha{
  margin:18px 0 6px;
  overflow:hidden;
}
.contact-form-submit{
  margin-top:14px;
  border:0;
  cursor:pointer;
}
.contact-offices{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  padding:0 0 var(--space-section);
}
.contact-office--solo{
  background:rgba(255,255,255,.52);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(219,228,233,.58);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 10px 36px rgba(12,33,46,.045);
  position:relative;
}
.contact-office--solo::before{
  content:"";
  position:absolute;
  top:0;
  left:28px;
  right:28px;
  height:1px;
  background:linear-gradient(90deg,rgba(241,90,36,.42),rgba(22,135,201,.28) 55%,transparent);
  opacity:.85;
  pointer-events:none;
  z-index:1;
}
.contact-office-body{
  display:grid;
  grid-template-columns:minmax(280px,390px) minmax(0,1fr);
  min-height:420px;
}
.contact-office-info{
  padding:clamp(28px,3.5vw,42px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:14px;
  border-right:1px solid rgba(219,228,233,.65);
  position:relative;
  z-index:1;
}
.contact-office-title{
  font-family:'Space Grotesk';
  font-size:clamp(30px,3.4vw,40px);
  line-height:1.05;
  margin:0;
  color:var(--ink);
}
.contact-office-title span{
  color:var(--blue2);
}
.contact-office-address{
  margin:0;
  font-size:16px;
  line-height:1.65;
  color:var(--ink);
  font-weight:600;
  max-width:28ch;
}
.contact-office-hours{
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}
.contact-office-hours p{margin:4px 0 0}
.contact-office-meta-label{
  display:block;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--blue2);
  margin-bottom:4px;
}
.contact-office-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:8px;
}
.btn-outline-dark{
  border:1px solid rgba(49,69,80,.22) !important;
  color:var(--ink) !important;
  background:rgba(255,255,255,.72);
}
.btn-outline-dark:hover{
  background:#eef4f7;
  border-color:rgba(49,69,80,.32) !important;
}
.contact-office-map{
  position:relative;
  min-height:360px;
  background:#eef4f7;
}
.contact-office-map iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
@media(max-width:960px){
  .contact-office-body{
    grid-template-columns:1fr;
    min-height:0;
  }
  .contact-office-info{
    border-right:0;
    border-bottom:1px solid rgba(219,228,233,.65);
    padding:24px 22px;
  }
  .contact-office-map{
    min-height:300px;
    aspect-ratio:16/10;
  }
}

@media(max-width:800px){
  .page-content-stack{gap:14px}
  .text-section{
    padding:22px 20px;
    border-radius:18px;
  }
  .text-section::before{left:20px;right:20px}
  .text-section--split{padding:18px}
  .remote-help.text-section{width:min(100% - 28px,1180px)}
  .contact-layout{grid-template-columns:1fr;gap:14px}
  .contact-form-grid{grid-template-columns:1fr}
  .contact-panel--form,
  .contact-panel--info{padding:22px 20px;border-radius:18px}
  .contact-page{width:min(100% - 28px,1180px)}
  .contact-offices{width:min(100% - 28px,1180px)}
  .scope-strip{width:min(100% - 28px,1180px)}
  .contact-actions .btn{width:100%;justify-content:center}
  .contact-office-actions .btn{width:100%;justify-content:center}
}

.split-aside .dark-panel--compact h2{
  font-size:clamp(24px,2.6vw,32px);
  line-height:1.08;
  margin:10px 0 16px;
}
.split-aside .dark-panel--compact p{
  font-size:14px;
  line-height:1.6;
  margin:0;
}
.split-aside .bullet-grid--compact{
  margin-top:0;
  gap:8px;
}
.split-aside .bullet-grid--compact .bullet{
  padding:9px 11px;
  font-size:11px;
}
@media(max-width:800px){
  .split.split-aside{grid-template-columns:1fr;gap:20px}
  .split-aside .dark-panel--compact{
    position:relative;
    top:auto;
    max-width:none;
    margin-left:0;
  }
}

/* V11 — unified vertical rhythm across the site */
:root{
  --space-section:52px;
  --space-section-sm:36px;
  --space-block:22px;
  --space-block-sm:14px;
}
.section{
  padding:var(--space-section) 0 !important;
}
.page-hero{
  padding:56px 0 var(--space-section-sm) !important;
}
.page-hero + .section{
  padding-top:var(--space-block) !important;
}
.hero{
  padding:56px 0 48px;
  min-height:560px;
}
.section-head{
  margin-bottom:var(--space-block);
}
.content-block{
  margin-bottom:var(--space-block);
}
.content-block:last-child{
  margin-bottom:0;
}
.detail{
  padding:var(--space-section-sm) 0 !important;
}
.portfolio-sites{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  padding:var(--space-section) 0 !important;
}
.section:has(+ .portfolio-sites){
  padding-bottom:var(--space-block-sm) !important;
}
.section + .portfolio-sites,
.portfolio-grid + .portfolio-sites,
.portfolio-sites.section-follow{
  padding-top:var(--space-block-sm) !important;
}
.portfolio-grid:has(+ .portfolio-sites){
  padding-bottom:var(--space-block-sm);
}
.portfolio-grid{
  padding:var(--space-section-sm) 0 var(--space-section);
}
.web-projects{
  margin-top:var(--space-block);
  gap:22px;
}
.cta-band{
  margin:var(--space-block) auto var(--space-section) !important;
  padding:40px 44px !important;
}
.section + .cta-band,
.portfolio-sites + .cta-band{
  margin-top:var(--space-block-sm) !important;
}
.estimate{
  margin:0 auto var(--space-section) !important;
}
.section + .section{
  padding-top:var(--space-block) !important;
}
footer{
  margin-top:var(--space-block);
  padding-top:48px;
  padding-bottom:22px;
}
.split.split-aside{
  gap:22px;
}
.info-grid--products{
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
}
.info-card--product h3{
  font-size:22px;
  line-height:1.15;
}
.info-card--product img{
  width:100%;
  max-height:180px;
  object-fit:contain;
  margin:16px 0;
}
/* Remote help — platform downloads in one row */
.remote-help{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
}
.remote-help-head{
  margin-bottom:var(--space-block);
}
.remote-help-head .split-title{
  margin-bottom:0;
}
.remote-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.remote-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:148px;
  padding:22px 16px;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.84);
  box-shadow:0 10px 35px rgba(12,33,46,.04);
  text-align:center;
  transition:transform .2s ease,box-shadow .2s ease;
}
.remote-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
}
.remote-card-icon{
  width:56px;
  height:56px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:13px;
  box-sizing:border-box;
}
.remote-card-icon svg{
  width:100%;
  height:100%;
  display:block;
}
.remote-card-icon--windows{
  background:#eaf8fd;
  box-shadow:inset 0 0 0 1px rgba(22,135,201,.15);
  color:#0078d4;
}
.remote-card-icon--mac{
  background:#f3f3f3;
  box-shadow:inset 0 0 0 1px rgba(80,80,80,.12);
  color:#555;
}
.remote-card-icon--linux{
  background:#fdf2ea;
  box-shadow:inset 0 0 0 1px rgba(202,136,89,.15);
  color:#dd4814;
}
.remote-card-icon--android{
  background:#ebfdf4;
  box-shadow:inset 0 0 0 1px rgba(61,168,110,.18);
  color:#3ddc84;
}
.remote-card-name{
  font-family:'Space Grotesk';
  font-size:18px;
  font-weight:700;
  color:var(--ink);
}
.remote-card-action{
  font-size:11px;
  font-weight:800;
  color:var(--blue2);
  letter-spacing:.04em;
}
.remote-help-text{
  margin-top:var(--space-block);
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
  text-align:center;
  max-width:760px;
  margin-inline:auto;
}
@media(max-width:800px){
  .remote-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .remote-card{
    min-height:128px;
    padding:18px 12px;
  }
}
@media(max-width:520px){
  .remote-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
.remote-page{
  padding:clamp(48px,8vw,88px) 0 clamp(56px,9vw,96px);
}
.remote-page .remote-help{
  margin-top:0;
}
.nav-remote-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border-radius:10px;
  font-size:12px;
  font-weight:800;
  color:#314550;
  white-space:nowrap;
}
.nav-remote-link img{
  width:22px;
  height:22px;
  object-fit:contain;
  flex-shrink:0;
}
.nav-remote-link:hover,
.nav-remote-link.active{
  background:#eef4f7;
  color:var(--ink);
}
@media(max-width:1050px){
  .nav-remote-link span{display:none}
  .nav-remote-link{padding:8px 9px}
}
@media(max-width:800px){
  .nav-remote-link span{display:inline}
  .nav-remote-link{
    width:100%;
    padding:12px;
    font-size:13px;
  }
  .nav-remote-link img{width:24px;height:24px}
}

@media(max-width:800px){
  :root{
    --space-section:40px;
    --space-section-sm:28px;
    --space-block:18px;
    --space-block-sm:12px;
  }
  .hero{
    padding-top:44px;
    min-height:auto;
  }
  .page-hero{
    padding:44px 0 28px !important;
  }
  .cta-band{
    padding:32px 26px !important;
    margin-bottom:var(--space-section) !important;
  }
}

/* V13 — button feedback, scroll reveals, stat counters */
.btn,
.nav-cta,
button.btn,
a.btn,
.service-card a,
.remote-card,
.cta-band .btn{
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease,color .22s ease,filter .22s ease;
}
.btn:hover,
button.btn:hover,
a.btn:hover,
.nav-cta:hover{
  transform:translateY(-2px);
}
.btn:active,
button.btn:active,
a.btn:active,
.nav-cta:active{
  transform:translateY(0);
  transition-duration:.1s;
}
.btn-primary:hover,
button.btn-primary:hover,
a.btn-primary:hover{
  background:#e8541a;
  box-shadow:0 14px 34px rgba(241,90,36,.34),0 0 0 1px rgba(241,90,36,.18);
  filter:brightness(1.03);
}
.btn:not(.btn-primary):not(.btn-outline-light):hover,
a.btn:not(.btn-primary):not(.btn-outline-light):hover{
  background:#fff;
  border-color:rgba(22,135,201,.42);
  box-shadow:0 10px 26px rgba(12,33,46,.09);
  color:var(--blue2);
}
.nav-cta:hover{
  box-shadow:0 14px 32px rgba(241,90,36,.4);
}
.cta-band a.btn:not(.btn-primary):hover,
.cta-band .btn:not(.btn-primary):hover{
  background:rgba(255,255,255,.95);
  border-color:rgba(255,255,255,.85);
  color:var(--ink) !important;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
.cta-band a.btn-outline-light:hover,
.cta-band .btn-outline-light:hover{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.55) !important;
  color:#fff !important;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
.btn-outline-light:hover{
  box-shadow:0 10px 26px rgba(0,0,0,.16);
  transform:translateY(-2px);
}
.service-card a:hover,
.project-shot a:hover{
  color:var(--orange);
  text-shadow:0 0 18px rgba(241,90,36,.25);
}
.btn:focus-visible,
.nav-cta:focus-visible,
.remote-card:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(22,135,201,.28);
}
.stat-value{
  display:inline-block;
  font-variant-numeric:tabular-nums;
}
.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .65s ease,transform .65s ease;
  transition-delay:var(--reveal-delay,0ms);
}
.reveal.is-visible{
  opacity:1;
  transform:none;
}
.trust-item.reveal,
.metric.reveal{
  transform:translateY(14px) scale(.98);
}
.trust-item.reveal.is-visible,
.metric.reveal.is-visible{
  transform:none;
}
@media(min-width:801px){
  .hero-visual{
    animation:heroFloat 7s ease-in-out infinite alternate;
  }
}
.data-core{
  animation:corePulse 4.5s ease-in-out infinite;
}
.orbit-label{
  animation:orbitFade 5s ease-in-out infinite alternate;
}
.ol1{animation-delay:0s}
.ol2{animation-delay:.8s}
.ol3{animation-delay:1.6s}
.ol4{animation-delay:2.4s}
@keyframes heroFloat{
  from{transform:translateY(0)}
  to{transform:translateY(-10px)}
}
@keyframes corePulse{
  0%,100%{box-shadow:0 30px 80px rgba(12,33,46,.13),0 0 0 0 rgba(22,135,201,0)}
  50%{box-shadow:0 34px 90px rgba(12,33,46,.16),0 0 0 12px rgba(22,135,201,.06)}
}
@keyframes orbitFade{
  from{opacity:.72;transform:translateY(0)}
  to{opacity:1;transform:translateY(-3px)}
}
.text-section.reveal.is-visible,
.service-card.reveal.is-visible{
  animation:sectionGlow .8s ease both;
  animation-delay:var(--reveal-delay,0ms);
}
@keyframes sectionGlow{
  from{box-shadow:0 10px 36px rgba(12,33,46,.045)}
  to{box-shadow:0 16px 44px rgba(12,33,46,.07)}
}
@media(prefers-reduced-motion:reduce){
  .hero-visual,.data-core,.orbit-label{
    animation:none !important;
  }
  .reveal{
    opacity:1;
    transform:none;
    transition:none;
  }
}

/* V14 — portfolio desk mockups (isolated .desk-mockup avoids legacy .desk-scene conflicts) */
.desk-mockup{
  position:relative;
  width:100%;
  aspect-ratio:1099 / 607;
  height:auto;
  background:url("../images/portfolio-desk.webp") center/100% 100% no-repeat;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 24px 55px rgba(12,33,46,.15);
}
.desk-mockup__screen{
  position:absolute;
  left:34.85%;
  top:10.85%;
  width:46.35%;
  height:59.55%;
  overflow:hidden;
  background:#f7f8f7;
  border:0;
  border-radius:1px;
  clip-path:polygon(4.3% 0%,100% 0%,96.7% 100%,0 96.4%);
  transform:skewY(-5.55deg);
  transform-origin:50% 50%;
  box-shadow:inset 0 0 0 1.5px rgba(7,14,19,.94), inset 0 0 16px rgba(0,0,0,.15);
}
.desk-mockup__screen:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(0,0,0,.10));
  mix-blend-mode:multiply;
}
.desk-mockup__screen:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  background:linear-gradient(112deg,rgba(255,255,255,.10),transparent 24%,transparent 72%,rgba(0,0,0,.08));
  opacity:.75;
}
.desk-mockup__screen img.site-scroll{
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:auto;
  max-width:none;
  display:block;
  transform:translate3d(0,0,0);
  transform-origin:top left;
  will-change:transform;
}
.desk-mockup .monitor-screen.has-scroll img.site-scroll{
  animation:sitePreviewScrollDesk var(--scroll-duration,18s) cubic-bezier(.37,0,.63,1) infinite alternate;
}
.project-shot:hover .desk-mockup .monitor-screen.has-scroll img.site-scroll{
  animation-play-state:paused;
}
@keyframes sitePreviewScrollDesk{
  0%,9%{transform:translate3d(0,0,0)}
  91%,100%{transform:translate3d(0,var(--scroll-distance),0)}
}
@media(max-width:800px){
  .desk-mockup__screen{
    left:34.7%;
    top:11%;
    width:46.5%;
    height:59.2%;
  }
}
@media(max-width:520px){
  .desk-mockup__screen{
    left:34.5%;
    top:11.2%;
    width:46.8%;
    height:58.8%;
  }
}
@media(prefers-reduced-motion:reduce){
  .desk-mockup .monitor-screen.has-scroll img.site-scroll{animation:none!important}
}

/* V15 — konfigurator wyceny strony */
.quote-configurator{
  width:min(900px,calc(100% - 40px));
  margin:0 auto var(--space-section);
}
.quote-configurator-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.quote-configurator-section{
  margin-bottom:0 !important;
}
.quote-configurator-section .split-title{
  font-family:'Space Grotesk';
  font-size:clamp(24px,3vw,32px);
  line-height:1.1;
  margin:6px 0 16px;
}
.quote-configurator-hint{
  margin:-6px 0 16px;
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}
.quote-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}
.quote-feature-option{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  padding:11px 13px;
  border:1px solid rgba(219,228,233,.72);
  border-radius:12px;
  background:rgba(255,255,255,.35);
  font-size:13px;
  line-height:1.45;
  color:var(--ink);
  cursor:pointer;
}
.quote-feature-option input{
  margin-top:2px;
  flex-shrink:0;
  accent-color:var(--orange);
}
.quote-configurator-lang{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(219,228,233,.75);
  display:flex;
  flex-direction:column;
  gap:12px;
}
.quote-configurator-submit{
  display:flex;
  flex-direction:column;
  gap:16px;
  align-items:flex-start;
}
.quote-consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:13px;
  line-height:1.55;
  color:var(--muted);
  cursor:pointer;
}
.quote-consent input{
  margin-top:3px;
  flex-shrink:0;
  accent-color:var(--orange);
}
.quote-configurator .contact-field textarea{
  min-height:280px;
}
@media(max-width:800px){
  .quote-configurator{width:min(100% - 28px,900px)}
  .quote-feature-grid{grid-template-columns:1fr}
}
