@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5901b7c6-module__ec5Qua__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5901b7c6-module__ec5Qua__variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.0dza.stei.9v7.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.0gfhww.tctz1o.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.09q3q1i5159bl.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_ff66f019-module__JthZ5W__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_ff66f019-module__JthZ5W__variable{--font-code:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--color-bg:#0a0a0f;--color-bg-secondary:#12121a;--color-surface:#ffffff08;--color-surface-hover:#ffffff0f;--color-surface-elevated:#ffffff14;--color-primary:#6366f1;--color-primary-light:#818cf8;--color-secondary:#8b5cf6;--color-accent:#06b6d4;--color-accent-light:#22d3ee;--color-success:#10b981;--color-warning:#f59e0b;--color-text-primary:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#7a879c;--color-border:#ffffff14;--color-border-hover:#ffffff26;--gradient-primary:linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #06b6d4 100%);--gradient-text:linear-gradient(135deg, #6366f1 0%, #06b6d4 100%);--gradient-glow:radial-gradient(ellipse at center, #6366f126 0%, transparent 70%);--gradient-hero:radial-gradient(ellipse at 50% 0%, #6366f11f 0%, #06b6d40d 45%, transparent 70%);--glass-bg:#ffffff0a;--glass-bg-hover:#ffffff12;--glass-border:#ffffff14;--glass-blur:blur(20px);--section-padding:clamp(4rem, 10vh, 8rem) clamp(1.5rem, 5vw, 4rem);--container-max:1200px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 40px #6366f126;--shadow-glow-accent:0 0 40px #06b6d426;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.3s cubic-bezier(.4, 0, .2, 1);--transition-slow:.5s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--color-bg);color:var(--color-text-primary);min-height:100vh;line-height:1.7;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-weight:700;line-height:1.2}h1{font-size:clamp(2.5rem,6vw,4.5rem)}h2{font-size:clamp(2rem,4vw,3rem)}h3{font-size:clamp(1.25rem,2.5vw,1.75rem)}p{color:var(--color-text-secondary)}a{color:inherit;text-decoration:none}::selection{color:var(--color-text-primary);background:#6366f14d}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem)}.section{padding:var(--section-padding);position:relative}.section-header{text-align:center;margin-bottom:clamp(3rem,6vh,5rem)}.section-label{text-transform:uppercase;letter-spacing:.15em;color:var(--color-primary-light);border-radius:var(--radius-full);background:#6366f114;border:1px solid #6366f14d;margin-bottom:1rem;padding:.35rem 1rem;font-size:.8rem;font-weight:600;display:inline-block}.section-title{background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem}.section-subtitle{color:var(--color-text-secondary);max-width:600px;margin:0 auto;font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.6}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:all var(--transition-base)}.glass-card:hover{background:var(--glass-bg-hover);border-color:var(--color-border-hover);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.gradient-text{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.btn{border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);border:none;outline:none;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 20px #6366f14d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 30px #6366f173}.btn-outline{color:var(--color-text-primary);border:1px solid var(--color-border);background:0 0}.btn-outline:hover{border-color:var(--color-primary);background:#6366f114;transform:translateY(-2px)}.tech-tag{color:var(--color-accent-light);border-radius:var(--radius-full);transition:all var(--transition-fast);background:#06b6d41a;border:1px solid #06b6d433;padding:.25rem .75rem;font-size:.78rem;font-weight:500;display:inline-block}.tech-tag:hover{background:#06b6d42e;border-color:#06b6d459}.cert-link{color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);transition:all var(--transition-fast);border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .9rem;font-size:.88rem;display:flex}.cert-link:hover{color:var(--color-text-primary);background:#6366f114;border-color:#6366f140}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1.75rem;padding:0;list-style:none;display:grid}.gallery-item{aspect-ratio:4/3;border:1px solid #f59e0b33;border-radius:12px;position:relative;overflow:hidden}.gallery-lead{aspect-ratio:auto;grid-area:span 2/span 2}.gallery-button{background:var(--color-bg-secondary);cursor:zoom-in;border:none;width:100%;padding:0;position:absolute;inset:0}.gallery-button img{transition:transform .4s}.gallery-button:hover img,.gallery-button:focus-visible img{transform:scale(1.05)}.gallery-button:focus-visible{outline-offset:-3px}.gallery-caption{color:#f1f5f9;text-align:left;background:linear-gradient(#0000,#0a0a0fd9);padding:1.5rem .75rem .6rem;font-size:.8rem;font-weight:600;position:absolute;bottom:0;left:0;right:0}.gallery-strip{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;padding:0;list-style:none;display:grid}.gallery-strip .gallery-item{aspect-ratio:1;border-color:var(--color-border)}.gallery-strip .gallery-caption{padding:1rem .5rem .4rem;font-size:.72rem}@media (max-width:640px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-lead{aspect-ratio:4/3;grid-row:span 1}}.lightbox{border:1px solid var(--color-border);background:var(--color-bg);max-width:min(1200px,95vw);max-height:95vh;color:var(--color-text-primary);border-radius:14px;margin:auto;padding:0;overflow:hidden}.lightbox::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05050ad9}.lightbox-image{width:auto;max-width:100%;height:auto;max-height:calc(95vh - 4rem);margin:0 auto;display:block}.lightbox-bar{text-align:center;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .75rem;font-size:.9rem;display:flex}.lightbox-btn{border:1px solid var(--color-border);background:var(--color-surface);min-width:40px;height:40px;color:var(--color-text-primary);cursor:pointer;border-radius:10px;font-size:1rem}.lightbox-btn:hover{background:var(--color-surface-elevated)}.lightbox-close{background:#0a0a0fb3;position:absolute;top:.75rem;right:.75rem}@media (prefers-reduced-motion:reduce){.gallery-button img{transition:none}}:focus-visible{outline:2px solid var(--color-primary-light);outline-offset:3px;border-radius:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.bg-glow{filter:blur(120px);opacity:.5;pointer-events:none;z-index:0;border-radius:50%;width:600px;height:600px;position:absolute}.bg-glow-primary{background:#6366f114}.bg-glow-accent{background:#06b6d40f}@media (max-width:768px){.section{padding:clamp(3rem,8vh,5rem) 1.25rem}}
