@font-face{font-family:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.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:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.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:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.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:Syne;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.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:Syne;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.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:Syne;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.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:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.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:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.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:Syne;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.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:Syne Fallback;src:local(Arial);ascent-override:93.93%;descent-override:27.93%;line-gap-override:0.0%;size-adjust:98.47%}.syne_ea4e3d19-module__X3ZgDa__className{font-family:Syne,Syne Fallback;font-style:normal}.syne_ea4e3d19-module__X3ZgDa__variable{--font-syne:"Syne", "Syne Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:optional;src:url(../media/ba8e772932784a28-s.0ikzyuq3itqgg.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:DM Mono;font-style:normal;font-weight:300;font-display:optional;src:url(../media/7546fe8f902b88b8-s.p.0ezg~kdx4q-_h.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:DM Mono;font-style:normal;font-weight:400;font-display:optional;src:url(../media/b12e986493c137cf-s.0unhoe1q6hp6-.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:DM Mono;font-style:normal;font-weight:400;font-display:optional;src:url(../media/36363bfb06833f56-s.p.0-pny06~-x26a.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:DM Mono;font-style:normal;font-weight:500;font-display:optional;src:url(../media/b2fa3ef4ca165ab4-s.0cnogfwvi2_o-.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:DM Mono;font-style:normal;font-weight:500;font-display:optional;src:url(../media/a73419dd2ba2d841-s.p.0x-0vqtj_fzf1.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:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_ceff6eb1-module__mrmLRG__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_ceff6eb1-module__mrmLRG__variable{--font-dm-mono:"DM Mono", "DM Mono Fallback"}
@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.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:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.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:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.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:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.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:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.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:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.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:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.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:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_8566272b-module__6PLmBa__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_8566272b-module__6PLmBa__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
:root{--bg-primary:#090c10;--bg-secondary:#0a0e14;--bg-card:#12141a;--bg-elevated:#1a1d24;--border-subtle:#ffffff0f;--border-strong:#ffffff1f;--text-primary:#edeef0;--text-secondary:#a0a4ab;--text-muted:#8b8f96;--accent:#3b9eff;--accent-hover:#6bb5ff;--accent-glow:#3b9eff26;--accent-teal:#0a8a6a;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--color-architecture:#5dcaa5;--color-data:#60a5fa;--color-constraint:#f59e0b;--font-heading:"DM Mono", monospace;--font-body:"DM Sans", sans-serif;--font-mono:"DM Mono", monospace;--section-pad:clamp(4rem, 8vw, 8rem);--content-max:1200px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);color:var(--text-primary);background-color:var(--bg-primary);font-weight:400;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text-primary);font-weight:500;line-height:1.15}h1{letter-spacing:-.04em;font-size:clamp(2.5rem,5vw,4rem);font-weight:300}h2{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:400}h3{font-size:clamp(1.2rem,2vw,1.5rem);font-weight:500}p{color:var(--text-secondary);font-size:clamp(.95rem,1.1vw,1.05rem);line-height:1.7}a{color:var(--text-primary);text-decoration:none;transition:opacity .15s}a:hover{opacity:.7}::selection{color:var(--text-primary);background-color:#ffffff26}.container{max-width:var(--content-max);margin:0 auto;padding:0 clamp(1.5rem,4vw,3rem)}.section{padding:var(--section-pad) 0}.section-header{text-align:center;margin-bottom:3rem}.section-header--compact{margin-top:clamp(4rem,7vw,6rem);margin-bottom:2rem}.section-header h2{margin-bottom:.75rem;display:inline-block;position:relative}.section-header h2:after{content:"";background:var(--accent);border-radius:1px;width:40px;height:2px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.section-header p{max-width:600px;margin:0 auto}.hero{justify-content:center;align-items:center;min-height:88vh;padding-top:72px;display:flex;position:relative;overflow:hidden}@keyframes pulse-glow{0%,to{opacity:.4;box-shadow:0 0 #3b9eff33}50%{opacity:1;box-shadow:0 0 8px 2px #3b9eff26}}.stack-graph{aspect-ratio:100/85;width:100%;max-width:560px;margin-top:1rem}.stack-graph-svg{width:100%;height:100%;overflow:visible}.stack-edge{stroke:var(--border-subtle);stroke-width:.25px;stroke-dasharray:1.5 1;opacity:.4}.stack-node-circle{fill:var(--bg-card);stroke:var(--border-strong);stroke-width:.3px;transition:all .2s}.stack-node[data-tier="1"] .stack-node-circle{stroke:var(--accent);stroke-width:.4px;filter:drop-shadow(0 0 1.5px var(--accent-glow))}.stack-node[data-tier="2"] .stack-node-circle{stroke:var(--border-strong)}.stack-node[data-tier="3"] .stack-node-circle{stroke:var(--border-subtle);opacity:.5}.stack-node:hover .stack-node-circle{stroke-width:.6px;fill:var(--bg-elevated)}.stack-node-label{font-family:var(--font-mono);fill:var(--text-muted);letter-spacing:.04em;pointer-events:none;font-size:2.8px}.stack-node[data-tier="1"] .stack-node-label{fill:var(--text-secondary);font-size:3px;font-weight:500}.stack-node[data-tier="3"] .stack-node-label{opacity:.5}.currently-building{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);margin-top:.5rem;padding:1.25rem}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.skill-item.featured{border-color:var(--border-strong);background:linear-gradient(135deg, var(--bg-card) 0%, var(--bg-elevated) 100%)}.skill-item.featured .skill-icon{background:var(--accent);color:var(--bg-primary);border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.skill-subskills{flex-wrap:wrap;gap:.35rem;margin-top:.4rem;display:flex}.skill-code-examples{margin-top:.5rem}.code-example-content .token-keyword{color:var(--text-primary);font-weight:500}.work-section{z-index:2;position:relative}.work-card{background:color-mix(in srgb, var(--bg-card) 88%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.work-card h3{color:var(--text-primary);margin-bottom:.7rem;font-size:1.05rem;font-weight:500}.work-card p{color:var(--text-secondary);font-size:.88rem;line-height:1.65}.work-card--current{flex-direction:column;gap:1rem;min-height:100%;padding:1.25rem;display:flex}.work-card--current p{flex:1}.work-card--past{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1.25rem;padding:1.25rem;display:grid}.work-card__meta{width:fit-content;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-elevated);align-items:center;gap:.5rem;padding:.28rem .55rem;font-size:.68rem;display:inline-flex}.work-card__next{border-left:2px solid var(--accent);background:var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-secondary);padding:.85rem;font-size:.82rem;line-height:1.55}.work-card__next span{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.3rem;font-size:.65rem;display:block}.work-card__focus{color:var(--text-secondary);gap:.45rem;margin-top:.9rem;padding-left:1rem;font-size:.84rem;line-height:1.55;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column;transition:all .2s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-visual{aspect-ratio:16/9;width:100%;position:relative;overflow:hidden}.project-visual img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.project-card:hover .project-visual img{transform:scale(1.03)}.project-visual .placeholder{background:var(--bg-elevated);width:100%;height:100%;font-family:var(--font-mono);color:var(--text-muted);justify-content:center;align-items:center;font-size:2.5rem;display:flex}.project-body{flex-direction:column;flex:1;padding:1.5rem;display:flex}.project-body h3{margin-bottom:.5rem;font-size:1.1rem;font-weight:500}.project-body p{color:var(--text-secondary);flex:1;margin-bottom:1rem;font-size:.85rem}.tech-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem;display:flex}.tech-tag{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border-subtle);padding:.2rem .5rem;font-size:.65rem}.project-links{gap:1rem;display:flex}.project-link{font-family:var(--font-heading);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:500;transition:color .15s}.project-link:hover{color:var(--accent-hover);opacity:1}.contact-layout{grid-template-columns:1fr 1fr;align-items:start;gap:3rem;display:grid}.contact-links{flex-direction:column;gap:1rem;display:flex}.contact-link{border:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:center;gap:1rem;padding:1rem;transition:all .15s;display:flex}.contact-link:hover{border-color:var(--border-strong);background:var(--bg-card);opacity:1}.contact-link .icon{border-radius:var(--radius-sm);background:var(--bg-elevated);width:36px;height:36px;color:var(--text-muted);border:1px solid var(--border-subtle);flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;display:flex}.contact-link .text{flex-direction:column;display:flex}.contact-link .label{font-family:var(--font-heading);color:var(--text-primary);font-size:.8rem;font-weight:500}.contact-section{padding-bottom:clamp(6rem,10vw,10rem)}.contact-link .value{color:var(--text-muted);font-size:.75rem}.contact-intro{text-align:center;max-width:600px;color:var(--text-secondary);margin:0 auto 2rem;font-size:1rem;line-height:1.7}.contact-intro strong{color:var(--text-primary)}.contact-availability{text-align:center;font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.02em;margin-top:1.5rem;font-size:.75rem}.footer{border-top:1px solid var(--border-subtle);padding:2rem 0}.footer-content{justify-content:space-between;align-items:center;display:flex}.footer .copyright{font-family:var(--font-mono);color:var(--text-muted);font-size:.75rem}.footer-links{gap:1.5rem;display:flex}.footer-links a{color:var(--text-muted);font-size:.75rem;transition:color .15s}.footer-links a:hover{color:var(--text-secondary);opacity:1}.benchmark-table-wrapper{margin-top:1.5rem;overflow-x:auto}.blog-grid{flex-direction:column;gap:1.5rem;display:flex}.about-content{max-width:700px;margin:0 auto}@media (max-width:768px){.contact-layout,.projects-grid,.work-card--past{grid-template-columns:1fr}.footer-content{text-align:center;flex-direction:column;gap:1rem}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}body.light-mode{--bg-primary:#f8f9fa;--bg-secondary:#f0f1f3;--bg-card:#fff;--bg-elevated:#e8e9eb;--border-subtle:#0000000f;--border-strong:#0000001f;--text-primary:#1a1d24;--text-secondary:#5a5e66;--text-muted:#8b8f96;--accent:#3b9eff;--accent-hover:#1a7feb;--accent-glow:#3b9eff26;--warning:#d97706;--color-architecture:#4a9e7f;--color-data:#3b82f6;--color-constraint:#d97706;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001a}body.light-mode .hero-gradient{background:radial-gradient(60% 50% at 50% 0,#00000005 0%,#0000 70%),radial-gradient(40% 40% at 80% 100%,#00000003 0%,#0000 70%)}body.light-mode ::selection{background-color:#0000001a}body.light-mode .currently-building,body.light-mode .skill-item{background:var(--bg-card);border-color:var(--border-subtle);box-shadow:var(--shadow-sm)}body.light-mode .skill-item:hover{border-color:var(--border-strong);background:var(--bg-elevated);box-shadow:var(--shadow-md)}body.light-mode .skill-item.featured{background:linear-gradient(135deg, var(--bg-card) 0%, var(--bg-elevated) 100%);box-shadow:var(--shadow-sm)}body.light-mode .project-card{background:var(--bg-card);border-color:var(--border-subtle);box-shadow:var(--shadow-sm)}body.light-mode .project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}body.light-mode .contact-link{border-color:var(--border-subtle)}body.light-mode .contact-link:hover{border-color:var(--border-strong);background:var(--bg-card)}body.light-mode .blog-card{background:var(--bg-card);border-color:var(--border-subtle)}body.light-mode .blog-card:hover{border-color:var(--border-strong)}body.light-mode .highlight-card{background:var(--bg-card);border-color:var(--border-subtle);box-shadow:var(--shadow-sm)}body.light-mode .code-example-content{background:var(--bg-elevated);border-color:var(--border-subtle)}body.light-mode ::-webkit-scrollbar-track{background:var(--bg-primary)}body.light-mode ::-webkit-scrollbar-thumb{background:var(--border-strong)}body.light-mode ::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}body.light-mode .footer{border-top-color:var(--border-subtle)}body.light-mode .hero-v2{background:#f8f9fa}body.light-mode .hero-v2__veil{background:linear-gradient(108deg,#f8f9fafa 28%,#f8f9fab8 58%,#f8f9fa0a 100%)}body.light-mode .hero-v2__scanlines{opacity:.3}body.light-mode .hero-v2__title{color:#1a1d24}body.light-mode .hero-v2__title span{color:var(--accent-teal,#0a8a6a)}body.light-mode .hero-v2__description{color:var(--text-secondary,#5a5e66)}body.light-mode .hero-v2__description em{color:var(--accent,#3b9eff)}body.light-mode .hero-v2__eyebrow{color:var(--accent-teal,#0a8a6a)}body.light-mode .hero-v2__eyebrow-dot{background:var(--accent-teal,#0a8a6a)}body.light-mode .hero-v2__btn-primary{background:var(--accent,#3b9eff);color:#fff}body.light-mode .hero-v2__btn-primary:hover{background:var(--accent-hover,#1a7feb)}body.light-mode .hero-v2__btn-ghost{color:var(--accent,#3b9eff);border-color:var(--accent,#3b9eff)}body.light-mode .hero-v2__btn-ghost:hover{border-color:var(--accent,#3b9eff);color:var(--accent-hover,#1a7feb)}body.light-mode .hero-v2__stat-card{border-color:var(--border-subtle,#0000000f);box-shadow:var(--shadow-sm,0 1px 2px #0000000f);background:#ffffffe6}body.light-mode .hero-v2__stat-card:before{background:var(--accent-teal,#0a8a6a)}body.light-mode .hero-v2__stat-label{color:var(--text-muted,#8b8f96)}body.light-mode .hero-v2__stat-value{color:var(--text-primary,#1a1d24)}body.light-mode .hero-v2__stat-sub{color:var(--accent-teal,#0a8a6a)}body.light-mode .hero-v2__stat-bar{background:#0000000f}body.light-mode .hero-v2__stat-fill{background:var(--accent-teal,#0a8a6a)}body.light-mode .hero-v2__hint{color:var(--text-muted,#8b8f96)}body.light-mode .hero-v2__contact{border-top-color:var(--border-subtle,#0000000f)}body.light-mode .hero-v2__contact-label{color:var(--accent-teal,#0a8a6a)}body.light-mode .hero-v2__contact-link{color:var(--text-secondary,#5a5e66)}body.light-mode .hero-v2__contact-link:hover{color:var(--accent,#3b9eff)}body.light-mode .hero-v2__contact-phone{color:var(--text-muted,#8b8f96)}body.light-mode .hero-v2__cursor{border-color:#3b9eff66}.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}
.header{z-index:100;padding:16px 24px;transition:all .4s cubic-bezier(.16,1,.3,1);position:fixed;top:0;left:0;right:0}.header--scrolled{padding:10px 24px}.header__inner{background:var(--bg-card,#0a0a0ab3);-webkit-backdrop-filter:blur(18px);border:1px solid var(--border-subtle,#ffffff0f);border-radius:16px;justify-content:space-between;align-items:center;gap:32px;max-width:1280px;height:56px;margin:0 auto;padding:0 24px;transition:all .4s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 8px 32px #0000004d}.header--scrolled .header__inner{background:var(--bg-elevated,#0a0a0ad9);border-color:var(--border-subtle,#ffffff14);height:48px;box-shadow:0 8px 40px #0006}.header__logo{color:var(--text-primary);flex-shrink:0;align-items:center;gap:10px;text-decoration:none;display:flex}.header__logo-text{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--text-primary,#ffffffe6);font-size:14px;font-weight:600}.header__logo-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite dotPulse}@keyframes dotPulse{0%,to{opacity:.7;box-shadow:0 0 #00d4ff66}50%{opacity:1;box-shadow:0 0 12px 4px #00d4ff26}}.header__nav{align-items:center;gap:4px;display:flex}.header__nav-link{color:var(--text-secondary,#fff9);letter-spacing:.02em;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:color .2s;position:relative}.header__nav-link:hover{color:var(--text-primary,#fffffff2);background:#ffffff0a}.header__nav-underline{background:var(--accent);border-radius:2px;width:16px;height:1.5px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;bottom:4px;left:50%;transform:translate(-50%)scaleX(0)}.header__nav-link:hover .header__nav-underline{transform:translate(-50%)scaleX(1)}.header__actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.header__availability{background:#10b98114;border:1px solid #10b98126;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;display:flex}.header__availability-dot{background:#10b981;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite availabilityPulse}.header__availability-text{color:#10b981;letter-spacing:.02em;font-size:11px;font-weight:500}.header__availability:hover{opacity:1;background:#10b9811f}@keyframes availabilityPulse{0%,to{opacity:1;box-shadow:0 0 6px 2px #10b98140}50%{opacity:.25;box-shadow:0 0 #10b98100}}.header__theme-toggle{border:1px solid var(--border-subtle,#ffffff14);background:var(--bg-elevated,#ffffff0a);width:34px;height:34px;color:var(--text-secondary,#fff9);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.header__theme-toggle:hover{color:var(--text-primary,#ffffffe6);background:var(--bg-elevated,#ffffff14);border-color:var(--border-strong,#ffffff26)}.header__toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:34px;height:34px;padding:0;display:none}.header__toggle span{background:var(--text-primary);border-radius:2px;width:18px;height:2px;transition:all .3s;display:block}.header__toggle--active span:first-child{transform:translateY(6px)rotate(45deg)}.header__toggle--active span:nth-child(2){opacity:0}.header__toggle--active span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.header__mobile{background:var(--bg-card,#0a0a0af2);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle,#ffffff0f);opacity:0;pointer-events:none;border-radius:16px;padding:24px;transition:all .3s cubic-bezier(.16,1,.3,1);display:none;position:fixed;top:80px;left:24px;right:24px;transform:translateY(-12px)}.header__mobile--open{opacity:1;pointer-events:auto;transform:translateY(0)}.header__mobile-nav{flex-direction:column;gap:8px;display:flex}.header__mobile-link{color:var(--text-secondary,#fffc);border-radius:8px;padding:12px 16px;font-size:16px;font-weight:500;text-decoration:none;transition:all .2s;display:block}.header__mobile-link:hover{color:var(--text-primary,white);background:#ffffff0a}.header__mobile-divider{background:var(--border-subtle);height:1px;margin:8px 0}.header__mobile-status{color:#10b981;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:flex}.header__mobile-status .header__availability-dot{background:#10b981;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite availabilityPulse}@media (max-width:768px){.header{padding:12px 16px}.header--scrolled{padding:8px 16px}.header__inner{height:48px;padding:0 16px}.header--scrolled .header__inner{height:44px}.header__nav,.header__availability{display:none}.header__toggle{display:flex}.header__mobile{display:block;top:68px;left:16px;right:16px}}body.light-mode .header__inner{box-shadow:0 4px 16px #0000000f}body.light-mode .header--scrolled .header__inner{box-shadow:0 4px 20px #00000014}body.light-mode .header__availability{background:#00897b0f;border-color:#00897b26}body.light-mode .header__availability-dot{background:#00897b}body.light-mode .header__availability-text{color:#00897b}body.light-mode .header__availability:hover{background:#00897b1a}body.light-mode .header__theme-toggle:hover{background:#0000000a}body.light-mode .header__mobile{background:#fffffff2;border-color:#0000000f}body.light-mode .header__mobile-link{color:var(--text-secondary)}body.light-mode .header__mobile-link:hover{color:var(--text-primary);background:#0000000a}body.light-mode .header__mobile-status{color:#00897b}body.light-mode .header__mobile-status .header__availability-dot{background:#00897b}
