@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--blue:#1a5fd8;--blue-dark:#134cb3;--navy:#101a30;--text:#16203a;--muted:#5d6779;--line:#dfe4ec;--tint:#f4f6fa;--font-body:"Inter Variable", system-ui, sans-serif;--font-heading:"Plus Jakarta Sans Variable", var(--font-body)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text);-webkit-font-smoothing:antialiased;background:#fff;margin:0;font-size:16px;line-height:1.65}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.2}h1{font-size:clamp(2.1rem,4.4vw,3.1rem);line-height:1.1}h2{margin-bottom:1.5rem;font-size:clamp(1.5rem,2.8vw,1.9rem)}h3{font-size:1.05rem}p{margin:0 0 1rem}a{color:inherit}ul{margin:0;padding:0;list-style:none}img{max-width:100%;height:auto;display:block}.container{max-width:1140px;margin:0 auto;padding:0 24px}.section{padding:80px 0}.section p{color:var(--muted)}.section-tint{background:var(--tint)}#uslugi,#realizacje,#technologie,#o-mnie,#kontakt{scroll-margin-top:24px}.section .eyebrow,.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--blue);margin-bottom:.6rem;font-size:.7rem;font-weight:600}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:.75rem;padding:.8rem 1.6rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.btn svg{width:1.1em;height:1.1em}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-dark)}.btn-outline{border-color:var(--blue);color:var(--blue);background:#fff}.btn-outline:hover{background:var(--blue);color:#fff}.btn-small{padding:.55rem 1.1rem;font-size:.8rem}.btn:disabled{opacity:.6;cursor:wait}.site-header{z-index:10;padding:20px 0;position:absolute;inset:0 0 auto}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 32px;display:flex}.logo{align-items:center;gap:14px;text-decoration:none;display:flex}.logo-mark{fill:none;width:52px;stroke:var(--navy);stroke-width:1.8px;stroke-linejoin:round}.logo-text{text-transform:uppercase;flex-direction:column;line-height:1.1;display:flex}.logo-text strong{font-family:var(--font-heading);letter-spacing:.22em;font-size:1.1rem;font-weight:800}.logo-text span{letter-spacing:.5em;color:var(--muted);margin-top:4px;font-size:.6rem}.nav{flex-wrap:wrap;gap:4px 30px;display:flex}.nav a{border-bottom:2px solid #0000;padding:6px 0;font-size:.85rem;font-weight:500;text-decoration:none}.nav a:hover,.nav a.active{border-bottom-color:var(--blue)}.hero{background:radial-gradient(45% 70% at 78% 45%,#dfe8f6 0%,#0000 70%),linear-gradient(#f3f6fb,#f8fafd);padding:130px 0 70px}.hero-inner{justify-content:space-between;align-items:center;gap:40px;display:flex}.hero-content{max-width:500px}.hero h1{margin-bottom:1.25rem}.lead{color:#3a4558}.hero-stack{letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.75rem;font-size:.8rem;font-weight:600}.hero-stack span{color:var(--muted);margin:0 .8rem}.hero-actions{flex-wrap:wrap;gap:16px;display:flex}.diagram{flex:none;width:504px;height:324px;position:relative}.diagram-lines{position:absolute;inset:0}.diagram-lines path{fill:none;stroke:#7fa6e8;stroke-width:1px}.diagram-lines circle{fill:var(--blue)}.tile{background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:76px;height:76px;font-size:.7rem;font-weight:600;display:flex;position:absolute;box-shadow:0 8px 24px #101a301a}.tile svg{width:30px;height:30px}.tile-api svg{color:var(--blue);width:22px;height:22px}.tile-api{width:64px;height:70px;font-size:.8rem}.tile-db svg{color:var(--navy)}.code-window{background:var(--navy);border-radius:6px;flex-direction:column;justify-content:center;gap:6px;width:162px;height:100px;padding:0 16px;display:flex;position:absolute;top:104px;left:86px;box-shadow:0 12px 30px #101a3040}.code-window i{background:#4b5a78;border-radius:2px;height:3px}.code-window i.hl{background:#5f9bff}.diagram-caption{color:var(--muted);margin:0;font-size:.75rem;line-height:1.4;position:absolute;top:284px;left:372px}.diagram-caption:after{content:"";border-top:1px solid var(--blue);width:44px;position:absolute;bottom:7px;left:78px}.section-head{grid-template-columns:1fr 1fr;align-items:end;gap:16px 64px;margin-bottom:2rem;display:grid}.section-head h2{margin-bottom:0}.section-head>p{max-width:26rem;margin-bottom:0;font-size:.9rem}.services{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.service{background:var(--tint);border-radius:6px;padding:28px 26px}.service-icon{width:32px;height:32px;color:var(--blue);margin-bottom:1.25rem}.service .service-subtitle{margin:.3rem 0 1rem;font-size:.8rem}.service p:last-child{margin:0;font-size:.85rem}.projects{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:.5rem;display:grid}.project-card{background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #101a300f}.project-img{aspect-ratio:5/2;object-fit:cover;object-position:top;width:100%}.project-body{padding:20px 22px 26px;position:relative}.project-icon{width:24px;height:24px;position:absolute;top:18px;right:20px}.project-body h3{margin-bottom:.5rem;padding-right:32px}.project-body .project-tags{margin-bottom:.75rem;font-size:.78rem}.project-body .project-tags~p{margin:0;font-size:.85rem}.project-link{color:var(--blue);align-items:center;gap:.6rem;margin-top:1rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.project-link:hover{text-decoration:underline}.project-link svg{width:1.1em;height:1.1em}.split{grid-template-columns:1fr 1.15fr;gap:56px;display:grid}.split>*+*{border-left:1px solid var(--line);padding-left:56px}.tech{grid-template-columns:auto auto;justify-content:start;gap:28px 0;display:grid}.tech-group:nth-child(2n){border-left:1px solid var(--line);padding-left:28px}.tech-group:nth-child(odd){padding-right:28px}.tech-group h3{font-family:var(--font-body);letter-spacing:.04em;margin-bottom:1rem;font-size:.75rem;font-weight:600}.tech-group ul{gap:22px;display:flex}.tech-group li{color:var(--muted);flex-direction:column;align-items:center;gap:.5rem;font-size:.7rem;display:flex}.tech-group svg{width:30px;height:30px;color:var(--navy)}.about{grid-template-columns:1fr 170px;align-items:start;gap:32px;display:grid}.about p{font-size:.9rem}.portrait{margin:0}.portrait img{border-radius:4px;width:100%}.portrait figcaption{color:var(--muted);flex-direction:column;margin-top:.75rem;font-size:.75rem;display:flex}.portrait strong{color:var(--text);font-size:.85rem}.socials{color:var(--text);gap:14px;margin-top:.6rem;display:flex}.socials svg{width:22px;height:22px}.contact{background:var(--navy);color:#fff;padding:56px 0;position:relative;overflow:hidden}.contact-bg{object-fit:cover;width:45%;height:100%;position:absolute;top:0;right:0;mask-image:linear-gradient(90deg,#0000,#000 60%)}.contact-inner{grid-template-columns:1fr 1.2fr 1.5fr;align-items:center;gap:32px 56px;display:grid;position:relative}.contact .eyebrow{color:#6ea8ff}.contact h2{margin:0}.contact p:not(.eyebrow){color:#d5dbe6;font-size:.85rem}.contact-links li{align-items:center;gap:.9rem;font-size:.85rem;display:flex}.contact-links li+li{margin-top:.6rem}.contact-links svg{width:20px;height:20px}.contact-links a{text-decoration:none}.contact-links a:hover{text-decoration:underline}.site-footer{color:var(--muted);padding:28px 0;font-size:.78rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 32px;display:flex}.footer-inner p{margin:0}.footer-inner strong{color:var(--text)}.footer-inner nav{flex-wrap:wrap;gap:8px 24px;display:flex}.footer-inner nav a{text-decoration:none}.footer-inner nav a:hover{color:var(--text)}.contact-dialog{width:min(560px,100% - 32px);color:var(--text);border:0;border-radius:10px;padding:32px;box-shadow:0 24px 60px #101a304d}.contact-dialog::backdrop{background:#101a3099}.dialog-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:6px;display:grid;position:absolute;top:16px;right:16px}.dialog-close svg{width:22px;height:22px}.contact-form{grid-template-columns:1fr 1fr;gap:16px;display:grid}.contact-form label{flex-direction:column;gap:6px;font-size:.8rem;font-weight:500;display:flex}.contact-form .full,.contact-form .form-status{grid-column:1/-1}.contact-form input,.contact-form textarea{width:100%;font:inherit;color:inherit;border:1px solid #c5ccd8;border-radius:6px;padding:.7rem .9rem;font-size:.9rem}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--blue);outline-offset:1px}.contact-form .btn{justify-self:start}.contact-form .hp{display:none}.form-status{margin:0;font-size:.85rem}.form-status:empty{display:none}.form-status.ok{color:#1a7f43}.form-status.error{color:#c0392b}@media (width<=1040px){.diagram{display:none}.hero-content{max-width:620px}.services{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.split>*+*{border-left:0;border-top:1px solid var(--line);padding:56px 0 0}.contact-inner{grid-template-columns:1fr 1fr}}@media (width<=760px){.section{padding:56px 0}.hero{padding-top:190px}.header-inner>.btn{display:none}.nav{gap:2px 18px}.section-head,.services,.projects,.contact-inner,.contact-form,.about{grid-template-columns:1fr}.portrait{max-width:200px}.tech{grid-template-columns:1fr}.tech-group:nth-child(n){border-left:0;padding:0}.contact-bg{opacity:.25;width:100%;mask-image:none}}
