.site-header{z-index:50;transition:background-color .25s var(--ease), border-color .25s var(--ease), backdrop-filter .25s var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.site-header.is-scrolled{background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(12px)saturate(140%);backdrop-filter:blur(12px)saturate(140%);border-bottom-color:var(--border)}.header-inner{align-items:center;gap:1rem;height:4.25rem;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:.6rem;margin-right:auto;font-weight:650;display:inline-flex}.brand-mark{background:linear-gradient(145deg, var(--accent), var(--accent-2));width:2rem;height:2rem;color:var(--accent-contrast);font-family:var(--font-mono);border-radius:.625rem;place-items:center;font-size:.75rem;font-weight:700;display:grid}.nav-desktop ul{align-items:center;gap:.25rem;display:flex}.nav-desktop a{color:var(--text-muted);transition:color .18s var(--ease), background-color .18s var(--ease);border-radius:999px;padding:.45rem .8rem;font-size:.9375rem;font-weight:500;display:block}.nav-desktop a:hover{color:var(--text);background:var(--surface-hover)}.nav-desktop a.is-active{color:var(--accent);background:var(--accent-soft)}.header-actions{align-items:center;gap:.4rem;display:flex}.icon-btn{border:1px solid var(--border);background:var(--surface);width:2.25rem;height:2.25rem;color:var(--text-muted);transition:color .18s var(--ease), border-color .18s var(--ease), background-color .18s var(--ease);border-radius:.7rem;place-items:center;display:grid}.icon-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--surface-hover)}.nav-trigger{display:none}.nav-mobile{border-top:1px solid var(--border);background:var(--bg)}.nav-mobile ul{flex-direction:column;padding-block:.5rem 1rem;display:flex}.nav-mobile a{color:var(--text-muted);border-bottom:1px solid var(--border);padding:.75rem .25rem;font-size:1.05rem;font-weight:500;display:block}.nav-mobile a.is-active{color:var(--accent)}@media (width>=52.0625rem){.nav-mobile{display:none}}@media (width<=52rem){.nav-desktop{display:none}.nav-trigger{display:grid}}@media (width<=24rem){.brand-name{display:none}}.hero{padding-block:clamp(3.5rem,11vh,7rem) clamp(3rem,8vw,5.5rem)}.hero-inner{max-width:52rem}.hero-status{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:999px;align-items:center;gap:.55rem;padding:.3rem .85rem .3rem .6rem;font-size:.8125rem;font-weight:500;display:inline-flex}.status-dot{background:var(--accent-2);width:.5rem;height:.5rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-2) 22%, transparent);border-radius:50%}.hero-title{font-size:var(--step-4);letter-spacing:-.035em;background:linear-gradient(120deg, var(--text) 30%, var(--accent) 120%);color:#0000;-webkit-background-clip:text;background-clip:text;margin-top:1.5rem;font-weight:700}.hero-role{font-size:var(--step-2);color:var(--text);flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.85rem;font-weight:500;display:flex}.hero-sep{color:var(--border-strong)}.hero-location{color:var(--text-muted)}.hero-intro{max-width:44rem;color:var(--text-muted);font-size:var(--step-1);margin-top:1.5rem}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.resume-dialog{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);width:min(68rem,100vw - 3rem);max-width:none;height:min(58rem,100dvh - 3rem);max-height:none;color:var(--text);margin:auto;padding:0;overflow:hidden;box-shadow:0 24px 100px #00000073}.resume-dialog[open]{animation:resume-enter .18s var(--ease);flex-direction:column;display:flex}.resume-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050912b8}html:has(.resume-dialog:modal){overflow:hidden}.resume-dialog-header,.resume-dialog-heading,.resume-dialog-actions,.resume-dialog-footer{align-items:center;display:flex}.resume-dialog-header{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;gap:1rem;padding:1.15rem 1.4rem}.resume-dialog-heading{gap:.85rem;min-width:0}.resume-dialog-icon{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--accent-soft);width:2.8rem;height:2.8rem;color:var(--accent);flex:none;place-items:center;display:grid}.resume-dialog-heading h2{font-size:1.15rem}.resume-dialog-heading p{color:var(--text-muted);margin-top:.25rem;font-size:.8125rem}.resume-dialog-actions{flex:none;gap:.75rem}.resume-download{font-size:.8125rem}.resume-dialog-close{border:1px solid var(--border);width:2.75rem;height:2.75rem;color:var(--text-muted);border-radius:50%;place-items:center;transition:background-color .18s,color .18s;display:grid}.resume-dialog-close:hover{background:var(--surface-hover);color:var(--text)}.resume-dialog-preview{overscroll-behavior:contain;background:var(--bg-alt);flex:1;min-height:0;padding:clamp(.5rem,2vw,1.5rem);overflow:auto}.resume-document{width:100%;max-width:56rem;margin-inline:auto}.resume-document .react-pdf__Page{color:#111;box-shadow:var(--shadow);background:#fff;margin-bottom:1rem}.resume-document .react-pdf__Page:last-child{margin-bottom:0}.resume-preview-message{text-align:center;color:var(--text-muted);padding:2rem 1rem}.resume-preview-message a{color:var(--accent);text-decoration:underline}.resume-dialog-footer{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;flex:none;justify-content:center;gap:.35rem .6rem;padding:.65rem 1rem;font-size:.75rem}.resume-dialog-footer a{color:var(--accent);text-underline-offset:3px;align-items:center;gap:.35rem;text-decoration:underline;display:inline-flex}@keyframes resume-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.resume-dialog[open]{animation:none}}@media (width<=40rem){.resume-dialog{border-radius:var(--radius);width:calc(100vw - 1rem);height:calc(100dvh - 1rem)}.resume-dialog-header{flex-wrap:wrap;padding:1rem}.resume-dialog-icon{display:none}.resume-dialog-heading p{font-size:.75rem}.resume-dialog-actions{justify-content:space-between;width:100%}.resume-dialog-preview{padding:.5rem}}.hero-socials{flex-wrap:wrap;gap:1.25rem;margin-top:1.5rem;display:flex}.social-link{color:var(--text-muted);transition:color .18s var(--ease), border-color .18s var(--ease);border-bottom:1px solid #0000;align-items:center;gap:.45rem;font-size:.9375rem;display:inline-flex}.social-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.hero-stats{grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr));gap:.75rem;margin-top:clamp(2.5rem,6vw,3.5rem);display:grid}.hero-stat{text-align:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column-reverse;justify-content:center;align-items:center;gap:.25rem;padding:1.1rem 1.25rem;display:flex}.hero-stat dt{color:var(--text-faint);letter-spacing:.02em;font-size:.8125rem}.hero-stat dd{font-size:var(--step-2);letter-spacing:-.02em;margin:auto 0;font-weight:650}@media (width<=34rem){.hero-role{flex-direction:column;align-items:flex-start;gap:.1rem}.hero-sep{display:none}}.section{border-top:1px solid var(--border);padding-block:clamp(3.5rem,8vw,6.5rem)}.section-head{max-width:44rem;margin-bottom:clamp(2rem,4vw,3rem)}.eyebrow-rule{opacity:.6;background:currentColor;width:1.75rem;height:1px}.section-title{font-size:var(--step-3);margin-top:.75rem}.section-lead{color:var(--text-muted);font-size:var(--step-1);margin-top:.9rem}.project-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem;display:flex}.filter-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);transition:color .16s var(--ease), border-color .16s var(--ease), background-color .16s var(--ease);border-radius:999px;padding:.35rem .85rem;font-size:.875rem;font-weight:500}.filter-chip:hover{color:var(--text);border-color:var(--border-strong)}.filter-chip.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(min(21rem,100%),1fr));gap:1.25rem;display:grid}.project-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);transition:border-color .2s var(--ease), translate .2s var(--ease), box-shadow .2s var(--ease);flex-direction:column;gap:.9rem;padding:1.6rem;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-2));opacity:0;height:2px;transition:opacity .2s var(--ease);position:absolute;inset:0 0 auto}.project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);translate:0 -3px}.project-card:hover:before{opacity:1}.project-card.is-featured{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 7%, var(--surface)), var(--surface) 55%)}@media (width>=60rem){.project-card.is-featured{grid-column:span 2}}.project-top{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.project-name{font-size:var(--step-2)}.project-tagline{color:var(--accent);margin-top:.3rem;font-size:.9375rem;font-weight:500}.project-status{border:1px solid var(--border-strong);color:var(--text-muted);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.2rem .65rem;font-size:.75rem;font-weight:600}.project-status.status-live{border-color:color-mix(in srgb, var(--accent-2) 55%, transparent);background:color-mix(in srgb, var(--accent-2) 12%, transparent);color:var(--accent-2)}.project-status.status-in-progress{border-color:color-mix(in srgb, var(--accent) 50%, transparent);background:var(--accent-soft);color:var(--accent)}.project-meta{color:var(--text-faint);font-family:var(--font-mono);flex-wrap:wrap;gap:.5rem;margin-top:-.4rem;font-size:.8125rem;display:flex}.project-description{color:var(--text-muted)}.project-highlights{gap:.5rem;display:grid}.project-highlights li{color:var(--text);padding-left:1.4rem;font-size:.9375rem;line-height:1.55;position:relative}.project-highlights li:before{content:"";background:var(--accent);border-radius:50%;width:.4rem;height:.4rem;position:absolute;top:.62em;left:.3rem}.project-tech{flex-wrap:wrap;gap:.4rem;display:flex}.project-links{flex-wrap:wrap;gap:1rem;margin-top:auto;padding-top:.5rem;display:flex}.project-link{color:var(--text);transition:color .18s var(--ease);align-items:center;gap:.4rem;font-size:.9375rem;font-weight:600;display:inline-flex}.project-link:hover{color:var(--accent)}.link-arrow{opacity:.55;transition:translate .18s var(--ease), opacity .18s var(--ease)}.project-link:hover .link-arrow{opacity:1;translate:1px -1px}.project-count{color:var(--text-faint);margin-top:1.5rem;font-size:.875rem}.skill-grid{grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));gap:1.25rem;display:grid}.skill-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1.35rem}.skill-label{color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.9rem;font-size:.75rem;font-weight:600}.skill-items{flex-wrap:wrap;gap:.45rem;display:flex}.skill-items .tag{color:var(--text);font-size:.8125rem}.timeline{gap:2.25rem;display:grid;position:relative}.timeline-item{padding-left:2rem;position:relative}.timeline-item:not(:last-child):before{content:"";background:var(--border);width:1px;position:absolute;top:1.35rem;bottom:-2.25rem;left:.3rem}.timeline-marker{background:var(--accent);width:.7rem;height:.7rem;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%;position:absolute;top:.5rem;left:0}.timeline-period{color:var(--text-faint);font-family:var(--font-mono);font-size:.8125rem}.timeline-role{font-size:var(--step-1);margin-top:.3rem}.timeline-org{color:var(--accent);font-weight:500}.timeline-summary{color:var(--text-muted);margin-top:.5rem}.timeline-points{gap:.45rem;margin-top:.9rem;display:grid}.timeline-points li{color:var(--text-muted);padding-left:1.25rem;font-size:.9375rem;position:relative}.timeline-points li:before{content:"";background:var(--border-strong);width:.375rem;height:1px;position:absolute;top:.65em;left:.15rem}.timeline-tech{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.about-layout{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,4vw,3rem);display:grid}.about-copy{max-width:42rem;color:var(--text-muted);font-size:var(--step-1);gap:1.1rem;display:grid}.about-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:center;justify-items:center;gap:.15rem;padding:2rem 1.5rem;display:grid}.about-avatar{background:linear-gradient(145deg, var(--accent), var(--accent-2));width:5rem;height:5rem;color:var(--accent-contrast);letter-spacing:-.02em;border-radius:50%;place-items:center;margin-bottom:1rem;font-size:1.75rem;font-weight:700;display:grid}.about-name{font-size:var(--step-1);font-weight:650}.about-role{color:var(--accent);font-size:.9375rem}.about-location{color:var(--text-faint);font-size:.875rem}@media (width<=48rem){.about-layout{grid-template-columns:1fr}.about-card{text-align:left;justify-items:start}}.contact{border-top:1px solid var(--border);padding-block:clamp(3.5rem,8vw,6rem)}.contact-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(28rem 16rem at 50% 0%, var(--accent-soft), transparent 70%), var(--surface);text-align:center;justify-items:center;padding:clamp(2.25rem,6vw,4rem) 1.5rem;display:grid}.contact-title{font-size:var(--step-3);margin-top:.75rem}.contact-lead{max-width:34rem;color:var(--text-muted);font-size:var(--step-1);margin-top:.85rem}.contact-email{font-family:var(--font-mono);margin-top:1.75rem;font-size:.9375rem}.contact-socials{gap:.6rem;margin-top:1.5rem;display:flex}.site-footer{border-top:1px solid var(--border);color:var(--text-faint);padding-block:2rem;font-size:.875rem}.footer-inner{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;display:flex}.footer-built{margin-right:auto}.footer-top{transition:color .18s var(--ease)}.footer-top:hover{color:var(--accent)}@media (width<=36rem){.footer-built{width:100%;margin-right:0}}:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--max-width:68rem;--radius-sm:.5rem;--radius:.875rem;--radius-lg:1.25rem;--step-0:1rem;--step-1:clamp(1.1rem, .4vw + 1rem, 1.25rem);--step-2:clamp(1.35rem, 1vw + 1.1rem, 1.75rem);--step-3:clamp(1.8rem, 2vw + 1.2rem, 2.5rem);--step-4:clamp(2.4rem, 5vw + 1.2rem, 4.25rem);--ease:cubic-bezier(.22, .61, .36, 1)}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0d14;--bg-alt:#0d111a;--surface:#121722;--surface-hover:#171d2a;--border:#232b3a;--border-strong:#32405a;--text:#e8ecf5;--text-muted:#9aa6bd;--text-faint:#6b7792;--accent:#7aa2ff;--accent-strong:#9ab6ff;--accent-contrast:#08101f;--accent-soft:#7aa2ff24;--accent-2:#4ad9c4;--glow-1:#7aa2ff38;--glow-2:#4ad9c424;--shadow:0 1px 2px #0006, 0 12px 32px -12px #0009}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfcfe;--bg-alt:#f3f5fa;--surface:#fff;--surface-hover:#f7f9fd;--border:#e2e7f0;--border-strong:#c7d0e0;--text:#111725;--text-muted:#55617a;--text-faint:#7d879c;--accent:#3159d6;--accent-strong:#2447bc;--accent-contrast:#fff;--accent-soft:#3159d61a;--accent-2:#0e9384;--glow-1:#3159d624;--glow-2:#0e93841a;--shadow:0 1px 2px #1018280f, 0 12px 28px -14px #10182840}*,:before,:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:5.5rem}body{background-color:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);font-size:var(--step-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.65}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60rem 40rem at 78% -10%, var(--glow-1), transparent 60%), radial-gradient(45rem 35rem at 8% 12%, var(--glow-2), transparent 62%);position:fixed;inset:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}ul,ol{padding:0;list-style:none}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;font-weight:650;line-height:1.15}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}::selection{background:var(--accent-soft);color:var(--text)}.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:1.5rem}@media (width<=40rem){.container{padding-inline:1.15rem}}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);transition:translate .2s var(--ease);padding:.6rem 1rem;font-weight:600;position:absolute;top:.5rem;left:50%;translate:-50% -200%}.skip-link:focus-visible{translate:-50%}.btn{white-space:nowrap;transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), translate .18s var(--ease);border:1px solid #0000;border-radius:999px;align-items:center;gap:.5rem;padding:.7rem 1.15rem;font-size:.9375rem;font-weight:600;display:inline-flex}.btn:hover{translate:0 -1px}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{background:var(--accent-strong)}.btn-ghost{border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.tag{border:1px solid var(--border);background:var(--bg-alt);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;padding:.2rem .6rem;font-size:.75rem;display:inline-flex}.eyebrow{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.8125rem;display:inline-flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.reveal{opacity:0;transition:opacity .6s var(--ease), translate .6s var(--ease);translate:0 1.25rem}.reveal.is-visible{opacity:1;translate:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;translate:none}}
