*,:before,:after{box-sizing:border-box}:root{--font-display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-body:"Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ink:#111210;--ink-2:#16170f;--ink-card:#1b1c19;--ink-card-2:#212320;--ink-line:#ffffff1a;--paper:#f6f4ee;--paper-card:#fff;--paper-line:#1112101a;--fg-d1:#f4f3ee;--fg-d2:#abada4;--fg-l1:#16170f;--fg-l2:#55564e;--site-accent:#00db74;--on-accent:#0a1a10;--r-sm:8px;--r-card:16px;--r-pill:9999px;--shadow-card:0 1px 2px #1112100d, 0 10px 30px #11121012;--shadow-dark:0 1px 2px #0006, 0 14px 40px #00000059;--pad-section:clamp(64px, 9vw, 124px);--page-max:1180px;--page-pad:clamp(20px, 4vw, 56px);--dur-sm:.11s;--dur-md:.26s;--ease:cubic-bezier(.2, .7, .2, 1);--ease-cinema:cubic-bezier(0, 0, .12, 1)}html{scroll-behavior:smooth;overflow-x:hidden}body{background:var(--ink);color:var(--fg-d2);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:18px;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--site-accent);color:var(--on-accent)}.wrap{max-width:var(--page-max);padding-inline:var(--page-pad);margin:0 auto}.mono{font-family:var(--font-mono)}body.grid-on .dark:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(#ffffff0d 1px,#0000 1px);background-size:26px 26px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.dark>.wrap,.dark>*{z-index:1;position:relative}.eyebrow{font-family:var(--font-mono);letter-spacing:.06em;color:var(--site-accent);align-items:center;gap:9px;margin:0 0 16px;font-size:12.5px;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--site-accent);opacity:.7;width:22px;height:1px}.btn{font-family:var(--font-body);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;transition:background var(--dur-sm) var(--ease), transform var(--dur-sm) var(--ease), border-color var(--dur-sm) var(--ease), color var(--dur-sm) var(--ease);border:1px solid #0000;align-items:center;gap:9px;padding:13px 22px;font-size:15.5px;font-weight:600;line-height:1;display:inline-flex}.btn:active{transform:scale(.975)}.btn svg{width:17px;height:17px}.btn-primary{background:var(--site-accent);color:var(--on-accent)}.btn-primary:hover{filter:brightness(1.06)}.btn-ghost{color:var(--fg-d1);background:0 0;border-color:#fff3}.btn-ghost:hover{border-color:var(--site-accent);color:var(--site-accent)}.btn-ghost-dark{color:var(--fg-l1);background:0 0;border-color:#11121033}.btn-ghost-dark:hover{border-color:var(--site-accent);color:var(--site-accent)}.icon-btn{border-radius:var(--r-pill);width:42px;height:42px;color:var(--fg-d1);transition:all var(--dur-sm) var(--ease);border:1px solid #ffffff29;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{border-color:var(--site-accent);color:var(--site-accent);transform:translateY(-2px)}.icon-btn svg{width:19px;height:19px}.nav{z-index:50;background:color-mix(in srgb, var(--ink) 80%, transparent);-webkit-backdrop-filter:saturate(140%)blur(12px);backdrop-filter:saturate(140%)blur(12px);border-bottom:1px solid var(--ink-line);position:sticky;top:0}.nav-inner{align-items:center;gap:28px;height:70px;display:flex}.brand{font-family:var(--font-display);color:var(--fg-d1);letter-spacing:-.01em;align-items:center;gap:11px;font-size:19px;font-weight:700;display:inline-flex}.brand .mark{background:var(--site-accent);width:30px;height:30px;color:var(--on-accent);font-family:var(--font-mono);border-radius:9px;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:inline-flex}.nav-links{gap:26px;margin-left:10px;display:flex}.nav-links a{font-family:var(--font-mono);color:var(--fg-d2);transition:color var(--dur-sm) var(--ease);padding:6px 0;font-size:14px;position:relative}.nav-links a:hover{color:var(--fg-d1)}.nav-links a:after{content:"";background:var(--site-accent);width:0;height:2px;transition:width var(--dur-md) var(--ease);position:absolute;bottom:0;left:0}.nav-links a:hover:after{width:100%}.nav-right{align-items:center;gap:11px;margin-left:auto;display:flex}section{position:relative}.dark{background:var(--ink);color:var(--fg-d2)}.dark.alt{background:var(--ink-2)}.light{background:var(--paper);color:var(--fg-l2)}.pad{padding-block:var(--pad-section)}.dark h1,.dark h2,.dark h3,.dark h4{color:var(--fg-d1)}.light h1,.light h2,.light h3,.light h4{color:var(--fg-l1)}.section-head{max-width:760px;margin-bottom:48px}.section-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(32px,4.4vw,52px);font-weight:600;line-height:1.04}.section-head p{max-width:580px;color:inherit;margin:18px 0 0;font-size:18px;line-height:1.6}.hero{overflow:hidden}.hero-grid{grid-template-columns:1.12fr .88fr;align-items:center;gap:64px;padding-block:clamp(56px,9vw,104px);display:grid}.mega{font-family:var(--font-display);letter-spacing:-.035em;color:var(--fg-d1);margin:16px 0 0;font-size:clamp(48px,7.2vw,96px);font-weight:800;line-height:.98}.mega .accent{color:var(--site-accent)}.hl-name{display:none}[data-headline=name] .hl-name{display:block}[data-headline=name] .hl-statement{display:none}.hero-sub{color:var(--fg-d2);max-width:520px;margin:28px 0 0;font-size:20px;line-height:1.55}.hero-sub strong{color:var(--fg-d1);font-weight:600}.hero-loc{font-family:var(--font-mono);color:var(--fg-d2);align-items:center;gap:9px;margin:22px 0 0;font-size:14px;display:inline-flex}.hero-loc svg{width:16px;height:16px;color:var(--site-accent)}.hero-cta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:32px;display:flex}.hero-socials{gap:10px;margin-left:4px;display:flex}.hero-card{border-radius:var(--r-card);background:var(--ink-card);border:1px solid var(--ink-line);box-shadow:var(--shadow-dark);aspect-ratio:4/5;position:relative;overflow:hidden}.hero-card img.photo{object-fit:cover;object-position:center 20%;width:100%;height:100%}.hero-chip{z-index:2;background:color-mix(in srgb, var(--ink) 72%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r-pill);font-family:var(--font-mono);color:var(--fg-d1);border:1px solid #ffffff29;align-items:center;gap:8px;padding:7px 14px 7px 11px;font-size:12px;display:inline-flex;position:absolute;top:14px;left:14px}.hero-chip .dot{background:var(--site-accent);width:8px;height:8px;box-shadow:0 0 0 0 color-mix(in srgb, var(--site-accent) 60%, transparent);border-radius:50%;animation:2s infinite pulse}.hero-card .cap{z-index:2;font-family:var(--font-mono);color:var(--fg-d1);background:linear-gradient(#0000,#0a0b09d9);padding:26px 16px 13px;font-size:12px;position:absolute;bottom:0;left:0;right:0}.hero-card .cap b{color:var(--site-accent);font-weight:500}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--site-accent) 55%, transparent)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}.about-grid{grid-template-columns:1fr 1fr;align-items:center;gap:60px;display:grid}.about-copy h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--fg-l1);margin:0 0 22px;font-size:clamp(28px,3.6vw,40px);font-weight:600;line-height:1.08}.about-copy p{color:var(--fg-l2);margin:0 0 18px;font-size:18.5px;line-height:1.65}.about-copy p:last-child{margin-bottom:0}.about-copy strong{color:var(--fg-l1);font-weight:600}.terminal{border-radius:var(--r-card);background:var(--ink);box-shadow:var(--shadow-card);font-family:var(--font-mono);border:1px solid #11121024;overflow:hidden}.terminal-bar{background:#0c0d0b;border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:13px 16px;display:flex}.terminal-bar .tl{border-radius:50%;width:11px;height:11px}.terminal-bar .tl.r{background:#ff5f57}.terminal-bar .tl.y{background:#febc2e}.terminal-bar .tl.g{background:#28c840}.terminal-bar .title{color:#ffffff73;margin-left:8px;font-size:12px}.terminal-body{color:#c7cabf;padding:22px 22px 26px;font-size:14px;line-height:1.8}.terminal-body .cmd{color:var(--fg-d1)}.terminal-body .cmd .p{color:var(--site-accent);margin-right:8px}.terminal-body .out{color:#9a9d92}.terminal-body .key{color:var(--site-accent)}.terminal-body .str{color:#e8c57b}.terminal-body .row{white-space:pre-wrap}.terminal-body .typed-cursor{vertical-align:-3px;background:var(--site-accent);width:8px;height:16px;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.timeline{gap:20px;display:grid}.job{background:var(--ink-card);border:1px solid var(--ink-line);border-radius:var(--r-card);transition:border-color var(--dur-md) var(--ease), transform var(--dur-md) var(--ease), background var(--dur-md) var(--ease);grid-template-columns:232px 1fr;gap:40px;padding:clamp(24px,3vw,36px);display:grid}.job:hover{background:var(--ink-card-2);border-color:#ffffff38;transform:translateY(-2px)}.job-meta .co{font-family:var(--font-display);color:var(--fg-d1);align-items:center;gap:9px;margin:0 0 6px;font-size:21px;font-weight:600;display:inline-flex}.job-meta .co .badge{border:1px solid var(--ink-line);width:30px;height:30px;color:var(--site-accent);background:#ffffff0f;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.job-meta .co .badge svg{width:16px;height:16px;display:block}.job-meta .when{font-family:var(--font-mono);color:var(--fg-d2);margin:0;font-size:13px}.job-meta .where{font-family:var(--font-mono);color:#82857b;align-items:center;gap:6px;margin:7px 0 0;font-size:12.5px;display:inline-flex}.job-meta .where svg{width:13px;height:13px}.job-meta .desc{color:var(--fg-d2);border-top:1px solid var(--ink-line);margin:16px 0 0;padding-top:16px;font-size:14px;line-height:1.5}.job-role{font-family:var(--font-body);color:var(--fg-d1);margin:0 0 16px;font-size:23px;font-weight:600;line-height:1.2}.job ul{gap:11px;margin:0;padding:0;list-style:none;display:grid}.job ul li{color:var(--fg-d2);padding-left:26px;font-size:15.5px;line-height:1.55;position:relative}.job ul li:before{content:"";background:var(--site-accent);border-radius:2px;width:7px;height:7px;position:absolute;top:9px;left:2px}.job-tags{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.tag{font-family:var(--font-mono);color:var(--fg-d2);border:1px solid var(--ink-line);border-radius:var(--r-pill);white-space:nowrap;background:#ffffff0d;align-items:center;padding:5px 11px;font-size:12px;display:inline-flex}.gh-card{background:var(--paper-card);border:1px solid var(--paper-line);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:16px 20px 12px;overflow-x:auto}.gh-card .react-activity-calendar{width:100%;margin:0!important}.gh-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.gh-foot a{font-family:var(--font-mono);color:var(--fg-l2);align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.gh-foot a:hover{color:var(--site-accent)}.gh-foot a svg{width:14px;height:14px}.skills-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.skill-card{background:var(--ink-card);border:1px solid var(--ink-line);border-radius:var(--r-card);flex-direction:column;padding:30px;display:flex}.skill-card .ico{background:color-mix(in srgb, var(--site-accent) 14%, transparent);width:46px;height:46px;color:var(--site-accent);border-radius:11px;justify-content:center;align-items:center;margin-bottom:20px;display:inline-flex}.skill-card .ico svg{width:24px;height:24px}.skill-card h3{font-family:var(--font-display);color:var(--fg-d1);margin:0 0 16px;font-size:22px;font-weight:600}.skill-pills{flex-wrap:wrap;gap:8px;display:flex}.skill-pills span{font-family:var(--font-mono);color:var(--fg-d2);border:1px solid var(--ink-line);border-radius:var(--r-pill);white-space:nowrap;background:#ffffff0d;align-items:center;padding:6px 12px;font-size:12.5px;display:inline-flex}.edu{background:var(--paper-card);border:1px solid var(--paper-line);border-radius:var(--r-card);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:22px;padding:28px 32px;display:flex}.edu .cap{background:var(--ink);width:54px;height:54px;color:var(--site-accent);border-radius:13px;flex:none;justify-content:center;align-items:center;display:inline-flex}.edu .cap svg{width:26px;height:26px}.edu .deg{font-family:var(--font-display);color:var(--fg-l1);margin:0;font-size:21px;font-weight:600}.edu .sch{color:var(--fg-l2);margin:4px 0 0;font-size:16px}.edu .yr{font-family:var(--font-mono);color:var(--fg-l2);text-align:right;margin-left:auto;font-size:13.5px}.cta{overflow:hidden}.cta .mega{margin:8px 0 0;font-size:clamp(44px,7vw,92px)}.cta p{color:var(--fg-d2);max-width:520px;margin:22px 0 0;font-size:19px;line-height:1.55}.cta-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:34px;display:flex}.foot{border-top:1px solid var(--ink-line);font-family:var(--font-mono);color:var(--fg-d2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:60px;padding-top:26px;font-size:13px;display:flex}.foot .built{align-items:center;gap:8px;display:inline-flex}.foot .built svg{width:15px;height:15px;color:var(--site-accent)}.foot-socials{gap:16px;display:flex}.foot-socials a{transition:color var(--dur-sm) var(--ease);display:inline-flex}.foot-socials a:hover{color:var(--site-accent)}.foot-socials svg{width:18px;height:18px}@media (prefers-reduced-motion:no-preference){.reveal{opacity:0;transition:opacity .6s var(--ease-cinema), transform .6s var(--ease-cinema);transform:translateY(18px)}.reveal.in{opacity:1;transform:none}}@media (width<=900px){.hero-grid{grid-template-columns:1fr;gap:40px}.hero-card{aspect-ratio:4/4.4;max-width:380px}.about-grid{grid-template-columns:1fr;gap:38px}.skills-grid{grid-template-columns:1fr}.job{grid-template-columns:1fr;gap:18px}.job-meta .desc{padding-top:12px}.nav-links{display:none}}@media (width<=560px){.edu .yr{text-align:left;width:100%;margin-left:0}body{font-size:17px}}
