@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(../media/316b6682b406c2db-s.26901079.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:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5e4d537aaa9e154b-s.p.01f07175.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:Archivo Black Fallback;src:local(Arial);ascent-override:70.78%;descent-override:16.93%;line-gap-override:0.0%;size-adjust:124.05%}.archivo_black_3aef5648-module__5k_0kW__className{font-family:Archivo Black,Archivo Black Fallback;font-style:normal;font-weight:400}.archivo_black_3aef5648-module__5k_0kW__variable{--font-archivo:"Archivo Black","Archivo Black Fallback"}
@font-face{font-family:Fragment Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/55784434036c275c-s.566c90b6.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:Fragment Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/2a164f87f9d98467-s.234a0a98.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:Fragment Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/d17d64c6923320fb-s.p.f0ddf107.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:Fragment Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d203b9464cfa0970-s.2fc06234.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:Fragment Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a69e508140118fbc-s.d41aa7b1.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:Fragment Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a9a434ecf764164f-s.p.73974b4a.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:Fragment Mono Fallback;src:local(Arial);ascent-override:68.53%;descent-override:18.03%;line-gap-override:0.0%;size-adjust:138.63%}.fragment_mono_cc4c319b-module__CHqG0q__className{font-family:Fragment Mono,Fragment Mono Fallback;font-weight:400}.fragment_mono_cc4c319b-module__CHqG0q__variable{--font-fragment:"Fragment Mono","Fragment Mono Fallback"}
:root{--bg:#f6f4ec;--paper:#fffdf6;--ink:#16130e;--body:#4d463c;--muted:#8d857a;--violet:#6c3df4;--violet-light:#8e63ff;--lime:#d8f24b;--lime-deep:#a5b91e;--orange:#ff7a29;--orange-soft:#ffb26b;--term-bg:#16130e;--term-chrome:#262119;--term-text:#e8e3d8;--term-border:#4d463c;--selection:#d8f24bb3;--font-display:var(--font-archivo),Impact,"Arial Black",sans-serif;--font-mono:var(--font-fragment),ui-monospace,"SF Mono",Menlo,monospace;--max:1200px;--gutter:clamp(20px,4vw,56px);--nav-h:76px}*,:before,:after{box-sizing:border-box}*{margin:0}html{font-family:var(--font-mono);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--bg)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--ink);font-size:14.5px;line-height:1.7;overflow-x:hidden}img{max-width:100%;display:block}ul,ol{padding:0;list-style:none}p{text-wrap:pretty}h1,h2,h3{color:var(--ink);font-weight:400}a{color:inherit}::selection{background:var(--selection)}:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:2px}section{scroll-margin-top:var(--nav-h)}.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}.container{max-width:var(--max);padding:0 var(--gutter);margin:0 auto}.comment{color:var(--violet);font-size:13px}.comment.lime{color:var(--lime)}.cursor{vertical-align:text-bottom;width:9px;height:17px;margin-left:7px;animation:1.1s step-end infinite blink;display:inline-block}.cursor-violet{background:var(--violet)}.cursor-lime{background:var(--lime);height:15px}.cursor-light{background:var(--term-text);height:16px}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.nav{z-index:20;height:var(--nav-h);padding:0 var(--gutter);background:var(--bg);border-bottom:3px solid var(--ink);justify-content:space-between;align-items:center;gap:24px;display:flex;position:sticky;top:0}.wordmark{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:17px;text-decoration:none}.wordmark .dot{color:var(--violet)}.nav-links{gap:18px;display:flex}.nav-links a{color:var(--ink);padding:3px 6px;font-size:12.5px;text-decoration:none;transition:background-color .12s}.nav-links a:hover{background:var(--lime)}.btn-resume{color:var(--bg);background:var(--ink);box-shadow:3px 3px 0 var(--violet);border-radius:6px;padding:10px 18px;font-size:12.5px;text-decoration:none;transition:transform .12s,box-shadow .12s}.btn-resume:hover{box-shadow:1px 1px 0 var(--violet);transform:translate(2px,2px)}.hero{position:relative;overflow:hidden}.hero-inner{max-width:var(--max);padding:clamp(48px,6vw,72px)var(--gutter)clamp(56px,7vw,84px);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:48px;margin:0 auto;display:grid}.prompt{color:var(--violet);font-size:13px}.whoami{font-family:var(--font-fragment),ui-monospace,monospace;letter-spacing:0;text-transform:none;color:var(--ink);align-items:center;margin:8px 0 0;font-size:20px;font-weight:400;line-height:1.4;display:flex}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;margin-top:26px;font-size:clamp(52px,7vw,100px);line-height:.95}.hero-title .line{display:block}.hero-title .line-outline{color:#0000;-webkit-text-stroke:2.5px var(--ink)}.hero-title .underscore{color:var(--orange)}.hero-intro{max-width:46ch;color:var(--body);margin-top:30px;font-size:14.5px;line-height:1.75}.hero-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:34px;display:flex}.btn-primary,.btn-outline,.btn-email{white-space:nowrap;border-radius:8px;align-items:center;gap:8px;font-size:13.5px;line-height:1;text-decoration:none;transition:transform .12s,box-shadow .12s,background-color .12s;display:inline-flex}.btn-primary{background:var(--violet);color:var(--bg);box-shadow:4px 4px 0 var(--ink);padding:15px 24px}.btn-primary:hover{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.btn-outline{background:var(--bg);color:var(--ink);border:2px solid var(--ink);padding:13px 22px}.btn-outline:hover{background:var(--lime)}.hero-photo{position:relative}.photo-back{background:var(--lime);border:2px solid var(--ink);border-radius:20px;width:100%;height:82%;position:absolute;bottom:-6px;right:-6px}.photo-card{background:linear-gradient(160deg,var(--violet-light)0%,var(--violet)100%);border:2px solid var(--ink);border-radius:20px;transition:transform .25s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;transform:rotate(-1.5deg)}.hero-photo:hover .photo-card{transform:rotate(0)scale(1.01)}.photo-card img{width:90%;height:auto;margin:40px auto 0}.badge{background:var(--orange);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:999px;padding:10px 16px;font-size:11.5px;position:absolute;top:-20px;right:-12px;transform:rotate(6deg)}.star{width:44px;height:44px;animation:14s linear infinite spin-slow;position:absolute;bottom:24px;left:-18px}.star svg{width:100%;height:100%;display:block}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ticker{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);background:var(--lime);padding:14px 0;overflow:hidden}.ticker-track{white-space:nowrap;width:max-content;font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);font-size:clamp(15px,1.4vw,18px);animation:22s linear infinite ticker-x;display:inline-flex}.ticker-track span{padding-right:36px}@keyframes ticker-x{0%{transform:translate(0)}to{transform:translate(-50%)}}.section{padding:clamp(64px,8vw,96px) 0}.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:48px;display:grid}.about-text{color:#2e2921;max-width:58ch;margin-top:20px;font-size:15.5px;line-height:1.85}.hl{background:var(--lime);color:inherit;padding:1px 5px}.terminal{background:var(--term-bg);border:2px solid var(--ink);border-radius:14px;overflow:hidden}.json-card{box-shadow:6px 6px 0 var(--orange)}.skills-card{box-shadow:6px 6px 0 var(--lime);margin-top:28px}.terminal-bar{background:var(--term-chrome);align-items:center;gap:7px;padding:12px 16px;display:flex}.tdot{border-radius:50%;width:11px;height:11px}.tdot.red{background:#ff5f57}.tdot.yellow{background:#febc2e}.tdot.green{background:#28c840}.tname{color:var(--muted);margin-left:10px;font-size:11.5px}.terminal-body{color:var(--term-text);padding:24px 26px;font-size:13px;line-height:2.05}.jkey{color:var(--lime)}.jval{color:var(--orange-soft)}.cmd{color:var(--muted)}.cmd .arrow{color:#28c840}.cmd .cmd-name{color:var(--term-text)}.cmd.end,.skill-group{margin-top:14px}.group-label{font-size:13px}.label-lime{color:var(--lime)}.label-violet{color:#b28eff}.label-orange{color:var(--orange-soft)}.chips{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.chip{border:1px solid var(--term-border);color:var(--term-text);border-radius:999px;padding:6px 14px;font-size:13px;line-height:1.6;transition:background-color .15s,color .15s,border-color .15s}.chip-lime:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}.chip-violet:hover{background:var(--violet-light);border-color:var(--violet-light);color:var(--bg)}.chip-orange:hover{background:var(--orange);border-color:var(--orange);color:var(--ink)}.work-list{gap:14px;margin-top:28px;display:grid}.work-card{border:2px solid var(--ink);background:var(--paper);border-radius:14px;grid-template-columns:90px minmax(0,1.05fr) minmax(0,1fr) 110px;align-items:center;gap:16px 40px;padding:24px 20px;transition:transform .15s,box-shadow .15s;display:grid}.work-index{font-family:var(--font-display);font-size:30px}.accent-violet .work-index,.accent-violet .work-org p{color:var(--violet)}.accent-lime .work-index,.accent-lime .work-org p{color:var(--lime-deep)}.accent-orange .work-index,.accent-orange .work-org p{color:var(--orange)}.accent-violet:hover{box-shadow:5px 5px 0 var(--violet);transform:translate(-3px,-3px)}.accent-lime:hover{box-shadow:5px 5px 0 var(--lime);transform:translate(-3px,-3px)}.accent-orange:hover{box-shadow:5px 5px 0 var(--orange);transform:translate(-3px,-3px)}.work-org h3{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;font-size:24px;line-height:1.15}.work-org p{margin-top:7px;font-size:12px}.work-summary{color:var(--body);font-size:13px;line-height:1.7}.work-dates{text-align:right;color:var(--muted);font-size:12.5px}.work-more{color:var(--muted);margin-top:26px;font-size:13px}.work-more a{color:var(--violet)}.closing{background:var(--term-bg);color:var(--bg);text-align:center;padding:clamp(80px,10vw,120px) 0 70px}.closing-title{font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase;color:var(--bg);margin-top:26px;font-size:clamp(48px,7vw,92px);line-height:.98}.closing-title span{display:block}.closing-title .outline{color:#0000;-webkit-text-stroke:2px var(--lime)}.btn-email{background:var(--lime);color:var(--ink);box-shadow:5px 5px 0 var(--violet);border-radius:10px;margin-top:46px;padding:18px 34px;font-size:15px}.btn-email:hover{box-shadow:1px 1px 0 var(--violet);transform:translate(3px,3px)}.closing-links{flex-wrap:wrap;justify-content:center;gap:14px 28px;margin-top:48px;display:flex}.closing-links a{color:var(--muted);font-size:12.5px;text-decoration:none;transition:color .15s}.closing-links a:hover{color:var(--lime)}.footer{background:var(--term-bg);text-align:center;color:var(--muted);border-top:1px solid #e8e3d824;padding:22px 0 30px;font-size:11.5px}.hero-in{opacity:0;animation:.8s cubic-bezier(.16,1,.3,1) forwards rise;transform:translateY(20px)}@keyframes rise{to{opacity:1;transform:translateY(0)}}html.js [data-reveal]{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(22px)}html.js [data-reveal].is-visible{opacity:1;transform:none}@media (max-width:899px){.hero-inner{grid-template-columns:minmax(0,1fr);gap:56px}.hero-photo{order:-1;width:100%;max-width:440px;margin:12px auto 0}.about-grid{grid-template-columns:minmax(0,1fr);gap:40px}.work-card{grid-template-columns:64px minmax(0,1fr) 80px;grid-template-areas:"index org dates""index summary summary";row-gap:10px}.work-index{grid-area:index}.work-org{grid-area:org}.work-summary{grid-area:summary}.work-dates{grid-area:dates}}@media (max-width:599px){:root{--nav-h:64px}.nav{border-bottom-width:2px}.nav-links{display:none}.hero-title{font-size:clamp(44px,13.5vw,64px)}.hero-title .line-outline{-webkit-text-stroke-width:2px}.hero-photo{width:calc(100% - 18px);margin:12px 10px 0 8px}.badge{padding:8px 12px;font-size:10.5px;right:6px;transform:rotate(4deg)}.star{width:34px;height:34px;left:-8px}.work-card{grid-template-columns:minmax(0,1fr) 80px;grid-template-areas:"org dates""summary summary"}.work-index{display:none}.terminal-body{padding:18px 16px}.chips{gap:8px}.chip{padding:5px 11px;font-size:12px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-in,html.js [data-reveal]{opacity:1;transition:none;animation:none;transform:none}.ticker-track{white-space:normal;width:auto;padding:0 var(--gutter);animation:none}.ticker-track span+span{display:none}.star,.cursor{animation:none}.photo-card{transform:none}.btn-primary,.btn-resume,.btn-email,.work-card,.chip{transition:none}}@media print{.nav,.ticker,.star,.badge{display:none}html,body{color:#000;background:#fff}.hero-in,[data-reveal]{opacity:1;animation:none;transform:none}.terminal{box-shadow:none}}
