:root{color-scheme:dark;--bg:#0d0b12;--panel:#121017;--text:#eeebf3;--muted:#9992a7;--faint:#71697f;--purple:#ba99ef;--line:#25202f;--mono:'JetBrains Mono',monospace;--sans:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}body:before{content:'';position:absolute;z-index:-1;inset:0 0 auto;height:760px;background:radial-gradient(ellipse at 70% 23%,#35204730,transparent 55%),radial-gradient(#8871a013 .8px,transparent .8px);background-size:auto,22px 22px;mask-image:linear-gradient(#000,transparent)}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}::selection{background:#6c448c;color:white}:focus-visible{outline:2px solid var(--purple);outline-offset:5px}.page{max-width:1040px;margin:auto;padding:0 42px}header{height:102px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;font-family:var(--mono);font-size:17px;font-weight:500;letter-spacing:-.6px}.mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #453355;background:#271b34;color:var(--purple);border-radius:8px;margin-right:12px;font-size:17px}.muted{color:var(--faint)}nav{display:flex;gap:29px;font:13px var(--mono)}nav a{color:var(--muted);transition:color .2s}nav a:hover,nav a.active{color:var(--purple)}.intro{padding-top:64px}.eyebrow{font:12px var(--mono);color:var(--muted);display:flex;align-items:center;gap:9px}.spark{color:var(--purple);font-size:21px}.hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:49px;margin-top:28px;align-items:center}.hello{margin:0 0 8px;color:#b2aabc;font-size:19px}.bio h1{font-size:55px;line-height:1.1;letter-spacing:-2.6px;font-weight:650;margin:0 0 24px}.bio h1>span{color:var(--purple)}.period{color:#e5d4fe}.lede{color:var(--muted);font-size:16px;line-height:1.8;margin:0 0 23px}.identity{display:flex;flex-wrap:wrap;gap:7px}.identity span{font:12px var(--mono);background:#191320;color:#bda9d4;border:1px solid #30233f;border-radius:5px;padding:5px 9px}.text-link{display:inline-flex;align-items:center;gap:14px;color:#d5c7e5;font-size:14px;margin-top:28px}.text-link:hover{color:var(--purple)}.text-link span{font-size:19px;transition:transform .2s}.text-link:hover span{transform:translate(2px,2px)}.terminal{border:1px solid #3a2c49;border-radius:10px;overflow:hidden;background:#110e17;box-shadow:0 20px 70px #0003,0 0 55px #a06edd06;transform:rotate(1deg);font:12px/1.85 var(--mono)}.terminal-bar{height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:#1a1422;border-bottom:1px solid #30243d;color:#94839f;font-size:11px}.window-dots{display:flex;gap:5px}.window-dots i{width:7px;height:7px;background:#655073;border-radius:50%}.window-dots i:nth-child(2){background:#4e3c5c}.window-dots i:nth-child(3){background:#3a2c48}.terminal-icon{font-size:15px}.terminal-body{padding:19px 21px 12px}.terminal-intro p{margin:0 0 12px;color:#cfc4db}.prompt{color:var(--purple);padding-right:8px}.json{white-space:pre;color:#82758f;line-height:1.9}.key{color:#c1a1eb}.number{color:#e5bb86}.value{color:#a5b7a4}.terminal-hint{margin-top:17px;color:#6d617d;font-size:11px}.terminal-hint button{background:none;border:0;padding:0;color:#a99bbd;font:inherit;text-decoration:underline;text-underline-offset:3px}.terminal-hint button:hover{color:var(--purple)}#terminal-form{display:flex;align-items:center;margin-top:8px}#command{width:100%;min-width:0;color:#dbceeb;background:transparent;border:0;outline:none;font:12px var(--mono);padding:5px 0}#command::placeholder{color:#736581}#terminal-form:focus-within{box-shadow:0 1px #645074}.run-command{color:#9b85b3;background:none;border:0;padding:0 3px}.terminal-bottom{display:flex;justify-content:space-between;background:#16101f;padding:6px 13px;color:#776486;font-size:10px;border-top:1px solid #241b2e}#terminal-output{max-height:130px;overflow:auto;color:#b4a7c1;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}#terminal-output p{margin:8px 0}.annotation{display:flex;align-items:center;gap:11px;font:12px var(--mono);color:var(--faint);margin:39px 0 54px}.tiny-line{width:25px;height:1px;background:#70568e}.section-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:17px;gap:20px}.section-heading>div{display:flex;align-items:center;gap:15px}.section-index{color:#806991;font:12px var(--mono)}h2{font-size:19px;letter-spacing:-.4px;font-weight:550;margin:0}.section-note{font:11px var(--mono);color:var(--faint)}.skill-row{display:grid;grid-template-columns:42px 1fr 150px;gap:21px;padding:25px 0;border-bottom:1px solid #201c28}.skill-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:9px;border:1px solid #3e304e;background:#20172b;color:var(--purple);font:14px var(--mono);margin-top:3px}.js{color:#d3bf93;background:#211e17;border-color:#383227}.re{color:#a5b1cf;background:#171b26;border-color:#2e3546}h3{margin:0 0 5px;font-size:16px;font-weight:550}.skill-row p{color:var(--muted);margin:0;font-size:14px;line-height:1.85;max-width:570px}.tags{display:flex;flex-wrap:wrap;gap:15px;margin-top:10px;font:11px var(--mono);color:#81738f}.skill-meta{text-align:right;color:var(--faint);font:11px/1.7 var(--mono);padding-top:5px}.little-section{margin-top:49px}.little-grid{display:grid;grid-template-columns:1fr 240px;gap:52px;align-items:center;padding:27px 0 39px}.personal-note p{margin:0 0 14px;color:var(--muted);font-size:15px;line-height:1.85}.note-signoff{font:12px var(--mono);color:#b59acb}.cat-card{width:100%;background:#15101d;border:1px dashed #42314f;border-radius:9px;padding:24px 12px;color:var(--purple);display:flex;flex-direction:column;align-items:center;transition:border-color .2s,background .2s}.cat-card:hover{border-color:#a984cc;background:#1d1429}.cat-face{font:31px var(--mono);margin-bottom:16px;white-space:nowrap}.cat-caption{font:10px var(--mono);color:#92829f}.cat-action{font:12px var(--mono);color:#b59acb;margin-top:9px}footer{border-top:1px solid var(--line);padding:24px 0 33px;display:flex;justify-content:space-between;gap:20px;color:var(--faint);font:11px/1.9 var(--mono)}.footer-dot{margin:0 9px}footer a:hover{color:var(--purple)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#2c1e3c;border:1px solid #795995;color:#f2e7fc;padding:12px 20px;border-radius:8px;box-shadow:0 8px 35px #0008;font:13px/1.6 var(--mono);max-width:calc(100% - 32px);width:max-content;z-index:10}.skip{position:absolute;left:16px;top:-100px;background:var(--purple);color:#171020;padding:8px;z-index:10}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){.page{max-width:1100px}.intro{padding-top:78px}.hero-grid{gap:80px}}
@media(max-width:800px){.page{padding:0 28px}.hero-grid{gap:26px;grid-template-columns:1.05fr 1fr}.bio h1{font-size:43px;letter-spacing:-1.8px}.terminal-body{padding:15px}.identity span{font-size:10px}.skill-row{grid-template-columns:39px 1fr}.skill-meta{display:none}.section-note{display:none}.little-grid{gap:24px;grid-template-columns:1fr 210px}}
@media(max-width:600px){.page{padding:0 23px}header{height:82px;gap:15px}.wordmark{font-size:14px}.mark{width:27px;height:27px;font-size:14px;margin-right:8px}nav{gap:15px;font-size:11px}.intro{padding-top:40px}.eyebrow{font-size:11px}.hero-grid{grid-template-columns:1fr;gap:32px;margin-top:24px}.bio h1{font-size:clamp(43px,12vw,58px)}.lede{font-size:16px}.identity span{font-size:11px}.terminal{transform:none}.terminal-body{padding:20px}.terminal,.json,#command{font-size:13px}.terminal-hint{font-size:12px}.terminal-bottom{font-size:11px}.annotation{margin:28px 0 42px;font-size:10px}.skill-row{padding:22px 0;gap:14px}.skill-row p{font-size:14px}h2{font-size:17px}.section-heading>div{gap:10px}.little-grid{grid-template-columns:1fr;gap:22px}.cat-card{max-width:100%;padding:23px}.cat-caption{font-size:12px}.cat-action{font-size:13px}footer{flex-direction:column;gap:10px;font-size:10px}.desktop-br{display:none}}
.bio h1{font-size:83px;letter-spacing:-4px;margin:0 0 22px}.lede strong{font-weight:500;color:#d6ccdf}.socials{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:31px;font:12px var(--mono)}.socials a,.socials button{display:inline-flex;gap:7px;align-items:center;color:#b4a7c4;background:none;border:0;padding:3px 0;font:inherit}.socials a:hover,.socials button:hover{color:#ddc5fb}.socials span{color:#776389}.socials svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.terminal-bar,.terminal-hint,.terminal-bottom,#terminal-output,.section-note,.tags,.skill-meta,.cat-caption,footer{font-size:12px}.identity span{font-size:12px}.skill-row p,.personal-note p{font-size:16px}.terminal{font-size:13px}#command{font-size:13px}nav{font-size:14px}.text-link{font-size:14px}.socials{font-size:14px}.terminal-bottom{padding:6px 13px}.cat-card{padding:24px 10px}.cat-caption{text-align:center}.section-note{font-size:12px}.little-grid{grid-template-columns:1fr 260px}
@media(max-width:800px){.bio h1{font-size:72px}.socials{gap:15px;font-size:13px}.little-grid{grid-template-columns:1fr 220px}.terminal-body{padding:14px}.terminal{font-size:12px}}
@media(max-width:600px){nav{gap:12px;font-size:12px}.page{padding:0 21px}.wordmark{font-size:13px}.mark{margin-right:7px}.bio h1{font-size:78px}.socials{font-size:14px;gap:23px}.terminal{font-size:13px}.terminal-body{padding:20px}.little-grid{grid-template-columns:1fr}.annotation{font-size:11px}.skill-row p{font-size:16px}.tags{gap:11px}footer{font-size:12px}.cat-action{font-size:14px}.cat-caption{font-size:12px}}
@media(max-width:350px){header{flex-wrap:wrap;height:auto;padding:18px 0;gap:15px}nav{width:100%;justify-content:space-between}.bio h1{font-size:65px}.socials{gap:14px}.annotation{line-height:1.8}}
.hero-grid{margin-top:0}.intro{padding-bottom:59px}.role{font-size:18px;color:#cdb8e6;line-height:1.5;margin:-7px 0 19px;font-weight:500}.lede{max-width:440px}.personal-note .text-link{margin-top:4px}.wordmark .muted{color:var(--purple)}.json{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:600px){.intro{padding-bottom:42px}.role{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
