:root{--bg:#e7edf6;--ink:#0f1f38;--muted:#5a6b85;--accent:#1e3a8a;--accent2:#3b6fd4;--glass:rgba(255,255,255,.55);--glass-b:rgba(255,255,255,.85);--line:rgba(30,58,138,.16);--shadow:0 10px 40px rgba(23,42,90,.12);--r:26px}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;color:var(--ink);line-height:1.6;min-height:100vh;background:radial-gradient(900px 600px at 85% -5%,#c9d9f5 0,transparent 60%),radial-gradient(800px 600px at -5% 40%,#dbe6f8 0,transparent 60%),radial-gradient(700px 500px at 100% 90%,#cfe0ff 0,transparent 60%),var(--bg);background-attachment:fixed}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{width:min(1120px,100% - 32px);margin-inline:auto}.glass{background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--glass-b);border-radius:var(--r);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.7)}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600}.eyebrow:before{content:"";width:24px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--accent2))}h1,h2,h3{line-height:1.15;letter-spacing:-.02em}h2{font-size:clamp(1.5rem,3vw,2rem);margin-top:6px}section{margin-top:22px}.sec{padding:34px}.nav{position:-webkit-sticky;position:sticky;top:14px;z-index:20;margin-top:14px;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;transition:box-shadow .35s ease,transform .35s ease}.nav.scrolled{box-shadow:0 16px 44px rgba(16,41,77,.2),inset 0 1px 0 rgba(255,255,255,.7)}.brand{display:flex;align-items:center;gap:10px;font-weight:700}.logo{width:40px;height:40px;border-radius:13px;background:linear-gradient(145deg,#153a6b,#2f5fd0);display:grid;place-items:center;font-weight:800;color:#fff;box-shadow:0 8px 20px rgba(30,58,138,.35)}.brand small{display:block;font-weight:400;color:var(--muted);font-size:.72rem;line-height:1.1}.links{display:flex;gap:4px}.links a{padding:8px 16px;border-radius:999px;font-size:.88rem;color:var(--muted);transition:.2s}.links a.on,.links a:hover{color:var(--ink)}.links a.on{background:#fff;box-shadow:0 2px 10px rgba(23,42,90,.12)}.burger{display:none;background:#fff;border:0;border-radius:12px;width:42px;height:42px;font-size:1.2rem}.btn,.burger{cursor:pointer}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-size:.9rem;font-weight:600;border:1px solid var(--glass-b);font-family:inherit;transition:transform .2s,box-shadow .25s,background .25s}.btn:active{transform:translateY(0) scale(.97)}.btn.dark{background:linear-gradient(135deg,#153a6b,#1e3a8a 55%,#2f5fd0);color:#fff;border-color:transparent;box-shadow:0 8px 22px rgba(30,58,138,.28)}.btn.dark:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(30,58,138,.38)}.btn.light{background:rgba(255,255,255,.7);color:var(--ink)}.btn.light:hover{background:#fff}.hero{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:30px;gap:30px;align-items:center;padding:44px 38px;margin-top:22px;overflow:hidden}.hero h1{font-size:clamp(2.4rem,6vw,4rem);margin:8px 0 4px}.grad{background:linear-gradient(90deg,#1e3a8a,#3b6fd4);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;font-size:clamp(1.3rem,3vw,1.9rem)}.hero p.lead{color:var(--muted);max-width:430px;margin:14px 0 24px}.cta{display:flex;gap:12px;flex-wrap:wrap}.socials{display:flex;gap:18px;margin-top:30px;color:var(--muted);font-size:.85rem}.socials a:hover{color:var(--accent)}.portrait{position:relative;justify-self:center;width:min(100%,380px);aspect-ratio:1/1.05;will-change:transform}.frame{position:absolute;inset:0;border-radius:44px 120px 44px 44px;overflow:hidden;background:linear-gradient(145deg,#eaf1fb,#c9dbf6 60%,#a9c6f0);border:1px solid #fff;box-shadow:var(--shadow),0 30px 70px rgba(30,58,138,.22);display:grid;place-items:center;animation:frameFloat 7s ease-in-out infinite}@keyframes frameFloat{50%{transform:translateY(-10px)}}.frame img{width:100%;height:100%;object-fit:cover}.frame .mono{font-size:5rem;font-weight:800;color:#fff;text-shadow:0 8px 30px rgba(30,58,138,.5)}.badge{position:absolute;padding:12px 18px;text-align:center;border-radius:20px}.badge b{display:block;font-size:1.6rem;line-height:1}.badge span{font-size:.7rem;color:var(--muted)}.b1{top:-14px;right:-10px}.b2{bottom:18px;right:-22px;min-width:130px}.spark{position:absolute;left:-14px;bottom:60px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:var(--accent);font-size:1.2rem}.about{display:grid;grid-template-columns:1fr 1fr;grid-gap:30px;gap:30px;align-items:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-top:20px}.stat{padding:16px;border-radius:18px;background:rgba(255,255,255,.6);border:1px solid var(--glass-b);text-align:center}.stat b{font-size:1.5rem;display:block}.stat span{font-size:.75rem;color:var(--muted)}.about p{color:var(--muted);margin-bottom:18px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-top:20px}.card{padding:22px;border-radius:22px;background:rgba(255,255,255,.62);border:1px solid var(--glass-b);transition:.25s}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);background:#fff}.ico{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;margin-bottom:14px;font-weight:700;font-size:.95rem}.amber{background:#ffe9c7;color:#c98512}.navy{background:#d5e0f7;color:#1e3a8a}.blue{background:#d6e4ff;color:#2f5fd0}.teal{background:#cdf3ee;color:#16a392}.card h3{font-size:1.02rem;margin-bottom:6px}.card p{font-size:.85rem;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.chip{padding:10px 20px;border-radius:14px;background:rgba(255,255,255,.7);border:1px solid var(--glass-b);font-size:.88rem;font-weight:500}.head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.grid3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-top:20px}.work{border-radius:22px;overflow:hidden;background:rgba(255,255,255,.65);border:1px solid var(--glass-b);transition:.25s;display:block}.work:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.work .img{aspect-ratio:16/10;overflow:hidden;background:#dbe5f5}.work img{width:100%;height:100%;object-fit:cover;transition:.5s}.work:hover img{transform:scale(1.05)}.work .body{padding:16px 18px}.work h3{font-size:1rem}.work p{font-size:.82rem;color:var(--muted);margin-top:4px}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.tag{font-size:.7rem;padding:3px 10px;border-radius:999px;background:#dbe6fb;color:#1e3a8a}.steps{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:12px;gap:12px;margin-top:20px}.step{padding:18px;border-radius:20px;background:rgba(255,255,255,.62);border:1px solid var(--glass-b)}.step em{font-style:normal;font-weight:700;font-size:1.05rem}.step h3{font-size:.95rem;margin:6px 0 4px}.step p{font-size:.78rem;color:var(--muted)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.filters button{border:1px solid var(--glass-b);background:rgba(255,255,255,.6);padding:8px 18px;border-radius:999px;font-family:inherit;font-size:.85rem;cursor:pointer;transition:.2s}.filters button.on,.filters button:hover{background:#10294d;color:#fff}.masonry{columns:220px 4;column-gap:14px;margin-top:22px}.shot{page-break-inside:avoid;break-inside:avoid;margin-bottom:14px;border-radius:20px;overflow:hidden;position:relative;cursor:zoom-in;border:1px solid var(--glass-b)}.shot img{width:100%;transition:.5s}.shot:hover img{transform:scale(1.04)}.shot .cap{position:absolute;inset:auto 0 0 0;padding:26px 14px 12px;color:#fff;font-size:.82rem;background:linear-gradient(transparent,rgba(10,10,25,.7));opacity:0;transition:.3s}.shot:hover .cap{opacity:1}.lightbox{position:fixed;inset:0;background:rgba(10,20,38,.9);display:none;place-items:center;z-index:50;padding:24px;cursor:zoom-out}.lightbox.open{display:grid}.lightbox img{max-height:88vh;border-radius:18px}.contact{display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:26px;gap:26px}.info{display:grid;grid-gap:14px;gap:14px;margin-top:22px}.info a,.info div{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:.92rem}.info i{font-style:normal;width:38px;height:38px;border-radius:12px;background:#fff;display:grid;place-items:center;color:var(--accent)}form{grid-gap:12px}.two,form{display:grid;gap:12px}.two{grid-template-columns:1fr 1fr;grid-gap:12px}input,textarea{width:100%;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.75);font-family:inherit;font-size:.92rem;color:var(--ink);outline:none;transition:.2s}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(30,58,138,.15);background:#fff}textarea{min-height:140px;resize:vertical}.hp{position:absolute;left:-9999px}.alert{padding:12px 16px;border-radius:14px;font-size:.88rem}.ok{background:#dff7ea;color:#146c43}.err{background:#fff6f6;color:#a12727}.page-title{padding:38px;margin-top:22px}.page-title p{color:var(--muted);max-width:560px;margin-top:8px}footer{margin:40px 0 24px;padding:20px 26px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.82rem;color:var(--muted)}@media(max-width:900px){.about,.contact,.hero{grid-template-columns:1fr}.grid4{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:1fr 1fr}.steps{grid-template-columns:repeat(2,1fr)}.burger{display:block}.links{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;padding:12px;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--glass-b);border-radius:22px}.links.open{display:flex}.nav>.btn{display:none}.b1,.b2{right:0}}@media(max-width:560px){.grid3,.grid4,.steps,.two{grid-template-columns:1fr}.hero,.page-title,.sec{padding:26px 20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}body:after,body:before{content:"";position:fixed;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(70px)}body:before{width:540px;height:540px;top:-160px;right:-140px;background:radial-gradient(circle,rgba(148,184,240,.75),transparent 70%);animation:blobA 20s ease-in-out infinite}body:after{width:480px;height:480px;bottom:-180px;left:-150px;background:radial-gradient(circle,rgba(120,166,235,.6),transparent 70%);animation:blobB 26s ease-in-out infinite}@keyframes blobA{50%{transform:translate(-50px,60px) scale(1.12)}}@keyframes blobB{50%{transform:translate(60px,-50px) scale(1.1)}}.hero h1{background:linear-gradient(120deg,#0f1f38,#1e3a8a 55%,#2f5fd0);-webkit-background-clip:text;background-clip:text;color:transparent}.card{position:relative;overflow:hidden;background:linear-gradient(160deg,rgba(255,255,255,.72),rgba(255,255,255,.5))}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2));transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.2,1)}.card:hover:before{transform:scaleX(1)}.card .ico{box-shadow:0 8px 18px rgba(30,58,138,.12)}.stat{transition:transform .3s ease,box-shadow .3s ease;background:linear-gradient(160deg,rgba(255,255,255,.75),rgba(255,255,255,.55))}.stat:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.stat b{background:linear-gradient(120deg,#1e3a8a,#3b6fd4);-webkit-background-clip:text;background-clip:text;color:transparent}.step{transition:transform .3s ease,box-shadow .3s ease}.step:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.step em{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#dbe6fb;color:var(--accent);font-size:.9rem;margin-bottom:10px}.chip{transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease}.chip:hover{transform:translateY(-3px);background:#fff;color:var(--accent);box-shadow:var(--shadow)}.work,.work .img{position:relative}.work .img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(15,31,56,.45));opacity:0;transition:opacity .4s ease}.work:hover .img:after{opacity:1}.work:hover{border-color:rgba(59,111,212,.45)}.shot{transition:transform .35s ease,box-shadow .35s ease}.shot:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.filters button{transition:.25s}.filters button:hover{transform:translateY(-2px)}.badge{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.badge b{background:linear-gradient(120deg,#1e3a8a,#3b6fd4);-webkit-background-clip:text;background-clip:text;color:transparent}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#153a6b,#2f5fd0,#5b8def);z-index:999;box-shadow:0 0 12px rgba(59,111,212,.55);will-change:width}.js-reveal .chips>*,.js-reveal .contact>*,.js-reveal .grid3>*,.js-reveal .grid4>*,.js-reveal .hero,.js-reveal .masonry>*,.js-reveal .page-title,.js-reveal .prow>*,.js-reveal .stats>*,.js-reveal .steps>*,.js-reveal .tech>*,.js-reveal footer,.js-reveal section.sec{transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}.js-reveal .chips>:not(.is-visible),.js-reveal .contact>:not(.is-visible),.js-reveal .grid3>:not(.is-visible),.js-reveal .grid4>:not(.is-visible),.js-reveal .hero:not(.is-visible),.js-reveal .masonry>:not(.is-visible),.js-reveal .page-title:not(.is-visible),.js-reveal .prow>:not(.is-visible),.js-reveal .stats>:not(.is-visible),.js-reveal .steps>:not(.is-visible),.js-reveal .tech>:not(.is-visible),.js-reveal footer:not(.is-visible),.js-reveal section.sec:not(.is-visible){opacity:0;transform:translateY(30px)}.work-more{display:inline-block;margin-top:12px;font-size:.78rem;font-weight:700;color:var(--accent);opacity:0;transform:translateY(4px);transition:opacity .3s ease,transform .3s ease}.work:focus-visible .work-more,.work:hover .work-more{opacity:1;transform:none}.tech{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:14px;gap:14px;margin-top:22px}.tech__item{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 10px;border-radius:18px;background:rgba(255,255,255,.6);border:1px solid var(--glass-b);transition:transform .25s ease,box-shadow .25s ease,background .25s ease;text-align:center}.tech__item img{width:36px;height:36px;object-fit:contain;transition:transform .3s ease}.tech__mark{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:.92rem;letter-spacing:-.5px;transition:transform .3s ease}.tech__item:hover .tech__mark{transform:scale(1.12)}.tech__item span{font-size:.78rem;color:var(--muted);font-weight:600}.tech__item:hover{transform:translateY(-4px);box-shadow:var(--shadow);background:#fff}.tech__item:hover img{transform:scale(1.12)}@media(max-width:760px){.tech{grid-template-columns:repeat(3,1fr)}}@media(max-width:420px){.tech{grid-template-columns:repeat(2,1fr)}}.prow{display:flex;gap:16px;margin-top:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 14px;scrollbar-width:thin}.prow__cell{flex:0 0 clamp(250px,30%,320px);scroll-snap-align:start}.prow::-webkit-scrollbar{height:8px}.prow::-webkit-scrollbar-thumb{background:rgba(59,111,212,.35);border-radius:999px}@media(max-width:560px){.prow__cell{flex:0 0 82%}}.detail-top{margin:6px 0 16px}.detail{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:0;gap:0;padding:0;overflow:hidden;border-radius:24px}.detail__media{background:#dbe5f5;min-height:320px}.detail__media img{width:100%;height:100%;object-fit:cover;display:block}.detail__body{padding:34px}.detail__body h1{font-size:1.7rem;margin:8px 0 12px}.detail__body .lead{color:var(--muted);font-size:.98rem;line-height:1.75;margin-bottom:18px}.detail__body .cta{margin-top:22px}@media(max-width:820px){.detail{grid-template-columns:1fr}.detail__media{min-height:240px;aspect-ratio:16/10}.detail__body{padding:22px 22px 26px}.detail__body h1{font-size:1.35rem}}@media(prefers-reduced-motion:reduce){.frame,body:after,body:before{animation:none!important}.js-reveal .chips>*,.js-reveal .contact>*,.js-reveal .grid3>*,.js-reveal .grid4>*,.js-reveal .hero,.js-reveal .masonry>*,.js-reveal .page-title,.js-reveal .prow>*,.js-reveal .stats>*,.js-reveal .steps>*,.js-reveal .tech>*,.js-reveal footer,.js-reveal section.sec{opacity:1!important;transform:none!important}}