@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.woff2)format("woff2");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:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_6b2d2f50-module__27qfrG__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_6b2d2f50-module__27qfrG__variable{--font-body:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/b886574ba42c3409-s.0n0by9e-ig5xq.woff2)format("woff2");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:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/c41ca59f1c34ba31-s.p.0xxb547n1hn74.woff2)format("woff2");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:Sora Fallback;src:local(Arial);ascent-override:85.29%;descent-override:25.5%;line-gap-override:0.0%;size-adjust:113.73%}.sora_c9bad275-module__jSnSVW__className{font-family:Sora,Sora Fallback;font-style:normal}.sora_c9bad275-module__jSnSVW__variable{--font-heading:"Sora", "Sora Fallback"}
@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d5c5d0c09204d6df-s.13ttt-b30w.yy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/183ef508277e0bae-s.0gp-eplv1237v.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/19fa2db765c1410a-s.077v-ceti4u.d.woff2)format("woff2");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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1b616f5c96adcdc6-s.01pk0jufqzypv.woff2)format("woff2");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:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/965fe048ac5810a6-s.p.0qmcx3bivised.woff2)format("woff2");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:Montserrat Fallback;src:local(Arial);ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.0%;size-adjust:112.83%}.montserrat_8cb74d74-module__wWtMKG__className{font-family:Montserrat,Montserrat Fallback;font-style:normal;font-weight:600}.montserrat_8cb74d74-module__wWtMKG__variable{--font-brand:"Montserrat", "Montserrat Fallback"}
:root{--bg:#080b12;--bg-soft:#0d1320;--surface:#0d1320b8;--line:#9cbaff38;--text:#f1f4fa;--muted:#b7c3d7;--accent:#7ad6ff;--accent-2:#8effbd;--danger:#ff7b9d;--header-offset:104px}*{box-sizing:border-box}html,body{min-height:100%;color:var(--text);font-family:var(--font-brand), var(--font-body), "Segoe UI", sans-serif;background:radial-gradient(circle at 12% 18%,#152743 0%,#0000 42%),radial-gradient(circle at 82% 11%,#122d34 0%,#0000 38%),linear-gradient(165deg,#05070c 0%,#0b1220 55%,#04070f 100%);margin:0}.app-shell{z-index:2;min-height:100vh;position:relative}.app-shell>:not(.hex-grid-overlay){z-index:2;position:relative}.hex-grid-overlay{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hex-grid-overlay canvas{opacity:.7;width:100%;height:100%;display:block}.hex-grid-vignette{pointer-events:none;background:radial-gradient(at 50% 14%,#06090fe6 0%,#06090fa3 34%,#06090f29 64%),radial-gradient(circle at 50% 44%,#06090f1f 20%,#06090f8f 68%,#06090fe6 100%),linear-gradient(#06090f6b 0%,#06090f33 35%,#06090f8f 100%);position:absolute;inset:0}.logo-tilt-wrap{contain:paint;display:inline-flex}.logo-tilt-inner{transform-origin:50%;transform:perspective(900px) rotateX(var(--logo-rotate-x,0deg)) rotateY(var(--logo-rotate-y,0deg));backface-visibility:hidden;will-change:transform;display:inline-flex}a{color:inherit;text-decoration:none}.container{width:min(1120px,100% - 3rem);margin-inline:auto}.glass{background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:18px;transition:border-color .22s,box-shadow .22s,transform .22s}.glass:hover{border-color:#7ad6ff6b;box-shadow:0 12px 28px #040c1859}.chip{border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;padding:.35rem .75rem;font-size:.8rem;display:inline-flex}.btn{cursor:pointer;border:0;border-radius:999px;padding:.8rem 1.15rem;font-size:.95rem;transition:transform .2s,opacity .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px #05101c59}.btn-primary{background:linear-gradient(110deg, var(--accent), var(--accent-2));color:#041219;font-weight:700}.btn-secondary{color:var(--text);border:1px solid var(--line);background:0 0}.section{padding:5rem 0}.app-shell>header+main:not(.has-hero){padding-top:var(--header-offset)}.section h2{margin:0;font-size:clamp(1.8rem,2.8vw,2.8rem)}.section p{color:var(--muted)}.card-grid{grid-template-columns:repeat(12,1fr);gap:1rem;display:grid}.project-card{grid-column:span 6;transition:transform .24s,box-shadow .24s,border-color .24s;position:relative;overflow:hidden}.project-card:hover{border-color:#7ad6ff73;transform:translateY(-6px)scale(1.01);box-shadow:0 22px 38px #020a1473}.project-card img{object-fit:cover;opacity:.9;width:100%;height:260px}.project-content{padding:1.15rem}.muted{color:var(--muted)}.hero{place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.hero-bg-wrap{animation:1.25s cubic-bezier(.2,.8,.2,1) both heroDropIn;position:absolute;inset:0}.hero:before{content:"";z-index:1;background:linear-gradient(90deg,#06090feb 24%,#06090f59 85%);position:absolute;inset:0}.hero-bg{object-fit:cover;filter:saturate(1.1)contrast(1.05);transform-origin:50%;will-change:transform;animation:26s ease-in-out infinite alternate heroCinematicMotion}.hero-content{z-index:2;gap:1rem;max-width:720px;display:grid;position:relative}.hero-reveal{animation:1.15s ease-out .28s both heroContentReveal}.nav-link{opacity:.92;transition:opacity .18s,color .18s;position:relative}.nav-link:after{content:"";transform-origin:0;background:#7ad6ffbf;height:1px;transition:transform .22s;position:absolute;bottom:-.22rem;left:0;right:0;transform:scaleX(0)}.nav-link:hover{opacity:1;color:#e6f7ff}.nav-link:hover:after{transform:scaleX(1)}.hero h1{font-family:var(--font-heading), "Segoe UI", sans-serif;margin:0;font-size:clamp(2rem,5.2vw,4.8rem);line-height:1.08}.hero p{color:#d8e3f3;margin:0;font-size:clamp(1rem,2vw,1.25rem)}.stack{flex-wrap:wrap;gap:.45rem;display:flex}.two-col{grid-template-columns:1fr 1fr;gap:1rem;display:grid}input,textarea,select{width:100%;color:var(--text);border:1px solid var(--line);background:#080b12cc;border-radius:12px;padding:.75rem .8rem}label{color:var(--muted);font-size:.9rem}form{gap:.8rem;display:grid}.nextjs-toast,#devtools-indicator{display:none}@keyframes heroDropIn{0%{opacity:.78;transform:translateY(-12%)}to{opacity:1;transform:translateY(0%)}}@keyframes heroContentReveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes heroCinematicMotion{0%{transform:scale(1.04)translate(0,0)rotate(0)}12%{transform:scale(1.053)translate(1.2px,-1.8px)rotate(.2deg)}26%{transform:scale(1.067)translate(-1.1px,1.3px)rotate(-.22deg)}41%{transform:scale(1.079)translate(1.4px,-.9px)rotate(.18deg)}57%{transform:scale(1.091)translate(-1.3px,1.5px)rotate(-.23deg)}74%{transform:scale(1.103)translate(1px,-1.4px)rotate(.16deg)}to{transform:scale(1.115)translate(-.8px,1.2px)rotate(-.14deg)}}@media (prefers-reduced-motion:reduce){.hero-bg,.hero-bg-wrap,.hero-reveal,.project-card,.glass,.btn,.nav-link,.nav-link:after{transition:none!important;animation:none!important;transform:none!important}}@media (max-width:900px){.project-card{grid-column:span 12}.section{padding:3.5rem 0}.two-col{grid-template-columns:1fr}}
