:root{--brand-blue:#3898ca;--brand-green:#78d495;--brand-teal:#5bb6b1;--navy:#0b2e54;--display:"Outfit", system-ui, sans-serif;--body:"Outfit", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--max:1180px}html[data-theme=dark]{--bg:#051021;--paper:#eaf2fa;--muted:#8da6c2;--accent:#63c6d8;--line:#ffffff1a;--line-str:#fff3;--glass-a:#ffffff16;--glass-b:#ffffff06;--glass-hl:#ffffff38;--glass-shadow:0 18px 50px -22px #000c;--dot:#78b4f026;--spot:#78c8e633;--chip-bg:#ffffff0e;--stat-grad:linear-gradient(135deg, #fff, #8fdcc0);--overlay:#030a14b8;--aurora-op:.5}html[data-theme=light]{--bg:#edf3f8;--paper:#0b2e54;--muted:#5a7591;--accent:#1f7fa8;--line:#0b2e541c;--line-str:#0b2e5438;--glass-a:#ffffffd1;--glass-b:#ffffff7a;--glass-hl:#fffffff2;--glass-shadow:0 18px 44px -22px #0b2e5452;--dot:#0b2e5421;--spot:#3898ca29;--chip-bg:#ffffffb3;--stat-grad:linear-gradient(135deg, #0b2e54, #2e9ca8);--overlay:#d2e0ecbf;--aurora-op:.34}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--paper);font-family:var(--body);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.65;transition:background .45s,color .45s;overflow-x:hidden}.bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg .dots{background-image:radial-gradient(circle, var(--dot) 1px, transparent 1px);background-size:28px 28px;transition:background-image .45s;position:absolute;inset:0}.aurora{filter:blur(95px);opacity:var(--aurora-op);border-radius:50%;transition:opacity .45s;position:absolute}.a1{background:radial-gradient(circle, var(--brand-blue), transparent 68%);width:760px;height:760px;top:-290px;right:-200px}.a2{background:radial-gradient(circle, var(--brand-green), transparent 68%);width:660px;height:660px;opacity:calc(var(--aurora-op) * .62);top:36%;left:-270px}.a3{background:radial-gradient(circle, var(--brand-teal), transparent 68%);width:720px;height:720px;opacity:calc(var(--aurora-op) * .7);bottom:-300px;right:-160px}.wrap{z-index:1;position:relative}.container{max-width:var(--max);margin:0 auto;padding:0 24px}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.025em;font-weight:700;line-height:1.1}h1{font-size:clamp(2.3rem,5.4vw,4rem);font-weight:800}h2{font-size:clamp(1.8rem,3.7vw,2.7rem);font-weight:800}h3{letter-spacing:-.012em;font-size:1.14rem;font-weight:600}p{color:var(--muted)}.eyebrow{font-family:var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-size:.82rem;font-weight:600;display:block}.glass{background:linear-gradient(155deg, var(--glass-a), var(--glass-b));-webkit-backdrop-filter:blur(22px)saturate(170%);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--glass-hl), var(--glass-shadow);border-radius:18px;transition:transform .35s cubic-bezier(.2,.7,.3,1),border-color .35s,box-shadow .35s,background .45s;position:relative;overflow:hidden}.glass:before{content:"";background:linear-gradient(180deg, var(--glass-hl), transparent);opacity:.4;pointer-events:none;height:52%;position:absolute;top:0;left:0;right:0}.glass:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%), var(--spot), transparent 62%);transition:opacity .35s;position:absolute;inset:0}.glass:hover{border-color:var(--line-str);box-shadow:inset 0 1px 0 var(--glass-hl), 0 26px 60px -22px #3898ca80;transform:translateY(-5px)}.glass:hover:after{opacity:1}.btn-row{flex-wrap:wrap;gap:14px;display:flex}.btn{cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--display);border:none;border-radius:12px;padding:14px 27px;text-decoration:none;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,background .25s,border-color .25s;display:inline-block}.btn-primary{background:linear-gradient(135deg, var(--brand-blue), var(--brand-green));color:#04263f;box-shadow:0 10px 26px -10px #3898cae6}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 38px -12px #78d495f2}.btn-ghost{color:var(--paper);border:1px solid var(--line-str);background:var(--chip-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.btn-ghost:hover{border-color:var(--accent);transform:translateY(-3px)}section{padding:90px 0}.sec-head{max-width:62ch;margin-bottom:46px}.sec-head p{margin-top:16px;font-size:1.02rem}.chips{flex-wrap:wrap;gap:10px;display:flex}.chip{color:var(--muted);border:1px solid var(--line);background:var(--chip-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:11px;padding:10px 17px;font-size:.85rem;font-weight:500;transition:transform .25s cubic-bezier(.2,.7,.3,1),background .25s,border-color .25s,color .25s}.chip:hover{color:#04263f;background:linear-gradient(135deg, var(--brand-blue), var(--brand-green));border-color:#0000;transform:translateY(-4px)}a:focus-visible,.btn:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.reveal{opacity:0;transform:translateY(20px)}.reveal.in-view{opacity:1;transition:opacity .65s,transform .65s cubic-bezier(.2,.7,.3,1);transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.glass:hover{transform:none}.reveal{opacity:1!important;transform:none!important}}nav{z-index:60;position:sticky;top:0}.nav-in{border-radius:16px;justify-content:space-between;align-items:center;height:64px;margin-top:14px;padding:0 10px 0 16px;display:flex}.logo{z-index:2;align-items:center;gap:11px;text-decoration:none;display:flex;position:relative}.logo img{object-fit:contain;width:34px;height:34px;transition:transform .5s cubic-bezier(.2,.7,.3,1)}.logo:hover img{transform:rotate(-12deg)scale(1.1)}.logo span{font-family:var(--display);letter-spacing:-.03em;color:var(--paper);font-size:1.32rem;font-weight:700}.nav-links{z-index:2;align-items:center;gap:24px;display:flex;position:relative}.nav-links a{color:var(--muted);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .25s}.nav-links a:hover{color:var(--paper)}.nav-cta{background:linear-gradient(135deg, var(--brand-blue), var(--brand-green));border-radius:10px;padding:9px 18px;font-weight:600;transition:transform .25s,box-shadow .25s;box-shadow:0 6px 18px -6px #3898cacc;color:#04263f!important}.nav-cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px -8px #78d495e6}.toggle{cursor:pointer;border:1px solid var(--line-str);background:var(--chip-bg);width:38px;height:38px;color:var(--paper);z-index:2;border-radius:11px;flex:none;place-items:center;transition:transform .3s cubic-bezier(.2,.7,.3,1),background .3s,border-color .3s;display:grid;position:relative}.toggle:hover{border-color:var(--accent);transform:rotate(28deg)scale(1.08)}.toggle svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;width:18px;height:18px}@media (width<=960px){.nav-links a:not(.nav-cta){display:none}}.hero{padding:78px 0 74px}.hero-grid{grid-template-columns:1.06fr 1fr;align-items:center;gap:52px;display:grid}@media (width<=980px){.hero-grid{grid-template-columns:1fr;gap:42px}}.hero h1 em{background:linear-gradient(120deg, var(--brand-blue), var(--brand-green));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.hero .lead{max-width:46ch;margin:24px 0 34px;font-size:1.1rem}.hero-meta{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:26px;margin-top:40px;padding-top:22px;font-size:.86rem;font-weight:500;display:flex}.pulse-dot{color:#3dbe7c;animation:2.4s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.flow{padding:16px}.flow-bar{border-bottom:1px solid var(--line);z-index:2;align-items:center;gap:7px;margin-bottom:6px;padding:0 4px 13px;display:flex;position:relative}.flow-bar i{background:var(--line-str);border-radius:50%;width:9px;height:9px;display:block}.flow-bar span{font-family:var(--mono);color:var(--muted);margin-left:8px;font-size:.69rem}.flow svg{z-index:2;width:100%;height:auto;display:block;position:relative}.nd{fill:var(--chip-bg);stroke:var(--line-str);stroke-width:1px}.nd.hot{stroke:var(--brand-blue);fill:#3898ca29}.nt{fill:var(--paper);font-family:IBM Plex Mono,monospace;font-size:9.5px}.nt.dim{fill:var(--muted)}.wire{stroke:var(--line-str);stroke-width:1.6px;fill:none}.pulse{fill:var(--brand-green)}.stats{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}@media (width<=820px){.stats{grid-template-columns:repeat(2,1fr)}}.stat{text-align:center;padding:28px 22px}.stat b{font-family:var(--display);letter-spacing:-.04em;background:var(--stat-grad);color:#0000;z-index:2;-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:800;display:block;position:relative}.stat span{letter-spacing:.045em;text-transform:uppercase;color:var(--muted);z-index:2;font-size:.78rem;font-weight:600;position:relative}.duo{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=900px){.duo{grid-template-columns:1fr}}.tblock{padding:40px 36px}.tblock>*{z-index:2;position:relative}.tblock h3{margin-bottom:16px;font-size:1.5rem;font-weight:800}.tblock p{margin-bottom:14px;font-size:.98rem}.tblock p:last-child{margin-bottom:0}.pillars{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}@media (width<=820px){.pillars{grid-template-columns:1fr}}.pillar{align-items:flex-start;gap:18px;padding:26px 26px 26px 24px;display:flex}.pillar>*{z-index:2;position:relative}.pillar .bar{background:linear-gradient(180deg, var(--brand-green), var(--brand-blue));border-radius:3px;flex:none;align-self:stretch;width:3px;transition:box-shadow .35s}.pillar:hover .bar{box-shadow:0 0 16px #78d495d9}.pillar h3{margin-bottom:8px}.pillar p{font-size:.92rem}.cards{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}@media (width<=980px){.cards{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.cards{grid-template-columns:1fr}}.card{cursor:pointer;text-align:left;width:100%;font-family:var(--display);color:inherit;padding:30px 26px}.card>*{z-index:2;position:relative}.ico{border:1px solid var(--line-str);background:linear-gradient(140deg,#3898ca66,#78d49538);border-radius:13px;place-items:center;width:44px;height:44px;margin-bottom:20px;transition:transform .4s cubic-bezier(.2,.7,.3,1),box-shadow .4s;display:grid}.card:hover .ico{transform:scale(1.12)rotate(-8deg);box-shadow:0 8px 22px -8px #78d495d9}.card h3{margin-bottom:10px}.card p{font-size:.93rem}.more{border-top:1px solid var(--line);color:var(--accent);align-items:center;gap:7px;margin-top:18px;padding-top:15px;font-size:.83rem;font-weight:600;display:flex}.more svg{width:14px;height:14px;transition:transform .3s}.card:hover .more svg{transform:translate(5px)}.steps{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}@media (width<=1000px){.steps{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.steps{grid-template-columns:1fr}}.step{padding:26px 22px}.step>*{z-index:2;position:relative}.step .n{color:var(--accent);border:1px solid var(--line-str);background:var(--chip-bg);border-radius:7px;margin-bottom:14px;padding:3px 10px;font-size:.8rem;font-weight:700;transition:background .3s,color .3s,border-color .3s;display:inline-block}.step:hover .n{background:linear-gradient(135deg, var(--brand-blue), var(--brand-green));color:#04263f;border-color:#0000}.step h3{margin-bottom:8px;font-size:1rem}.step p{font-size:.86rem}.projects{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=900px){.projects{grid-template-columns:1fr}}.proj{padding:32px 28px}.proj>*{z-index:2;position:relative}.proj-top{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:4px;display:flex}.client{color:var(--accent);letter-spacing:.03em;text-transform:uppercase;font-size:.79rem;font-weight:600}.ver{color:var(--muted);border:1px solid var(--line-str);white-space:nowrap;background:var(--chip-bg);border-radius:7px;padding:3px 10px;font-size:.76rem;font-weight:500}.proj h3{margin:6px 0 12px;font-size:1.42rem;font-weight:800}.proj p{font-size:.93rem}.tags{flex-wrap:wrap;gap:7px;margin-top:20px;display:flex}.tag{color:var(--muted);background:var(--chip-bg);border:1px solid var(--line);border-radius:8px;padding:4px 11px;font-size:.76rem;font-weight:500;transition:background .25s,color .25s,transform .25s,border-color .25s}.tag:hover{background:linear-gradient(135deg, var(--brand-blue), var(--brand-green));color:#04263f;border-color:#0000;transform:translateY(-2px)}.live{color:var(--accent);align-items:center;gap:6px;margin-top:18px;font-size:.85rem;font-weight:600;text-decoration:none;transition:gap .3s;display:inline-flex}.live:hover{gap:11px}.about{grid-template-columns:270px 1fr;align-items:start;gap:44px;padding:44px;display:grid}@media (width<=900px){.about{grid-template-columns:1fr;gap:28px;padding:32px 24px}}.about>*{z-index:2;position:relative}.photo{border:1px solid var(--line-str);border-radius:16px;width:100%;transition:transform .5s cubic-bezier(.2,.7,.3,1);display:block;box-shadow:0 16px 40px -20px #0009}.about:hover .photo{transform:scale(1.03)}.who{margin-top:18px}.who b{font-family:var(--display);letter-spacing:-.02em;color:var(--paper);font-size:1.06rem;font-weight:700;display:block}.who span{color:var(--accent);font-size:.85rem;font-weight:500}.about h4{color:var(--paper);margin:24px 0 10px;font-size:1.06rem;font-weight:700}.about p{margin-bottom:14px;font-size:.97rem}.cta{text-align:center;padding:62px 44px}.cta>*{z-index:2;position:relative}.cta p{max-width:54ch;margin:18px auto 32px;font-size:1.04rem}.cta .btn-row{justify-content:center}.contact-list{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;gap:14px;margin-top:38px;padding-top:26px;font-size:.88rem;font-weight:500;display:flex}.contact-list a{color:var(--muted);border:1px solid var(--line);background:var(--chip-bg);border-radius:11px;align-items:center;gap:9px;padding:9px 16px;text-decoration:none;transition:color .25s,border-color .25s,transform .25s cubic-bezier(.2,.7,.3,1);display:inline-flex}.contact-list a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-3px)}.contact-list svg{stroke:currentColor;fill:none;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.overlay{z-index:200;background:var(--overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;visibility:hidden;place-items:center;padding:24px;transition:opacity .3s,visibility .3s;display:grid;position:fixed;inset:0}.overlay.open{opacity:1;visibility:visible}.modal{width:100%;max-width:600px;max-height:86vh;padding:40px 38px;transition:transform .4s cubic-bezier(.2,.7,.3,1);overflow-y:auto;transform:translateY(28px)scale(.96)}.overlay.open .modal{transform:translateY(0)scale(1)}.modal>*{z-index:2;position:relative}.modal-head{align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.modal-head .ico{flex:none;margin-bottom:0}.modal h3{margin-bottom:4px;font-size:1.6rem;font-weight:800}.modal .sub{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:600}.modal p{margin-bottom:20px;font-size:.98rem}.modal h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:24px 0 12px;font-size:.85rem;font-weight:700}.modal ul{gap:9px;list-style:none;display:grid}.modal li{color:var(--paper);align-items:flex-start;gap:11px;font-size:.94rem;display:flex}.modal li svg{width:16px;height:16px;stroke:var(--brand-green);fill:none;stroke-width:2.4px;stroke-linecap:round;flex:none;margin-top:4px}.modal .fit{background:var(--chip-bg);border:1px solid var(--line);color:var(--muted);border-radius:12px;margin-top:26px;padding:16px 18px;font-size:.9rem}.modal .fit b{color:var(--paper);font-weight:600}.modal-close{z-index:5;border:1px solid var(--line-str);background:var(--chip-bg);width:34px;height:34px;color:var(--paper);cursor:pointer;border-radius:10px;place-items:center;transition:transform .25s,border-color .25s;display:grid;position:absolute;top:16px;right:16px}.modal-close:hover{border-color:var(--accent);transform:rotate(90deg)}.modal-close svg{stroke:currentColor;stroke-width:2.4px;fill:none;stroke-linecap:round;width:15px;height:15px}.modal .btn{margin-top:26px}footer{border-top:1px solid var(--line);margin-top:50px;padding:34px 0}.foot-in{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;font-size:.83rem;display:flex}.foot-logo{align-items:center;gap:9px;display:flex}.foot-logo img{object-fit:contain;width:26px;height:26px}
