@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url("/assets/space-grotesk-latin.woff2") format("woff2")}
:root{color-scheme:dark;--font-sans:"Space Grotesk",Arial,Helvetica,sans-serif;--paper:#000;--surface:#070c09;--raised:#0c1810;--ink:#dcffe5;--muted:#93b69e;--accent:#54ff81;--line:#1e3b29;--on-accent:#031207;--accent-hover:#8bffa8;--focus:#54ff81;--grid:rgba(84,255,129,.045)}
html[data-theme=light]{color-scheme:light;--paper:#f3f4f7;--surface:#fff;--raised:#f0f3fa;--ink:#202733;--muted:#596579;--accent:#3659b7;--line:#d4dbe7;--on-accent:#fff;--accent-hover:#294eab;--focus:#3659b7;--grid:rgba(54,89,183,.055)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}img{display:block;max-width:100%}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:5px}::selection{background:var(--accent);color:var(--on-accent)}[hidden]{display:none!important}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.shell{max-width:1152px;margin:0 auto;padding:0 40px}.skip-link{position:fixed;top:-100px;left:20px;z-index:10;padding:12px 20px;background:var(--accent);color:var(--on-accent)}.skip-link:focus{top:12px}
.site-header{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:19px;letter-spacing:-.6px;white-space:nowrap}.brand-icon{width:30px;height:30px;color:var(--accent);stroke-width:1.8}.domain{color:var(--muted);font-weight:400}.header-right{display:flex;align-items:center;gap:32px}.header-nav{display:flex;gap:26px;color:var(--muted);font-size:13px}.header-nav a:hover,.site-footer a:hover{color:var(--accent)}.theme-switch{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--surface);flex-shrink:0}.theme-switch button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted)}.theme-switch svg{width:17px;height:17px}.theme-switch button:hover{color:var(--ink);background:var(--raised)}.theme-switch button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:center;gap:64px;padding:83px 0 85px}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--muted);font-family:var(--font-sans);font-size:12px;letter-spacing:.02em}h1{margin:18px 0 25px;font-size:clamp(48px,6vw,78px);line-height:1.08;font-weight:600;letter-spacing:-5px}.title-divider{color:var(--accent);font-size:.58em;font-weight:400;letter-spacing:-.03em;white-space:nowrap}.inline-divider{padding:0 5px;color:var(--accent)}.intro{font-size:20px;line-height:1.7;letter-spacing:-.4px}.bio{font-size:16px;line-height:1.8;color:var(--muted);margin-top:13px}.optimism{color:var(--ink)}.social-links{display:flex;gap:12px;margin-top:31px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:12px 16px;border-radius:5px;font-size:13px;font-weight:500;border:1px solid transparent;transition:background .15s,border-color .15s}.button svg{width:16px;height:16px}.button .arrow{width:13px;height:13px;margin-left:6px}.button-primary{background:var(--accent);color:var(--on-accent);font-weight:600;letter-spacing:.02em;box-shadow:0 0 12px color-mix(in srgb,var(--accent) 8%,transparent)}.button-primary:hover{background:var(--accent-hover)}.button-secondary{border-color:var(--line);background:var(--surface)}.button-secondary:hover{background:var(--raised);border-color:var(--muted)}.portrait-wrap{position:relative;width:300px;padding:19px;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:20px 20px}.portrait-frame{padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:9px;transform:rotate(3deg);transition:transform .25s}.portrait-frame:hover{transform:rotate(0deg)}.portrait{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:4px}.portrait-caption{display:flex;align-items:center;justify-content:center;gap:10px;padding-top:21px;color:var(--muted);font:11px var(--font-sans)}.portrait-caption>span{color:var(--accent)}.portrait-cross{position:absolute;color:var(--muted);font:19px var(--font-sans)}.cross-top{top:-7px;left:0}.cross-bottom{bottom:2px;right:0}
.section{padding:0 0 54px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:23px 0;border-top:1px solid var(--line)}h2{display:flex;align-items:baseline;gap:10px;font-size:14px;font-weight:600;letter-spacing:.07em}.section-marker{color:var(--accent);font-size:1em;font-weight:500;letter-spacing:0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-card{display:flex;flex-direction:column;padding:25px 26px 22px;border:1px solid var(--line);border-radius:4px;background:var(--surface);transition:border-color .2s,background .2s,transform .2s}.project-card:hover{border-color:var(--accent);background:var(--raised);transform:translateY(-3px)}.project-top{display:flex;align-items:center;gap:12px;margin-bottom:24px}.project-icon{display:grid;place-items:center;width:37px;height:37px;border:1px solid var(--line);border-radius:7px;color:var(--accent);background:var(--raised)}.project-icon svg{width:21px;height:21px}.project-kind{font:10px var(--font-sans);letter-spacing:.09em;color:var(--muted)}.project-arrow{width:18px;height:18px;margin-left:auto;color:var(--muted);transition:color .2s,transform .2s}.project-card:hover .project-arrow{color:var(--accent);transform:translate(2px,-2px)}h3{font-size:25px;line-height:1.25;font-weight:500;letter-spacing:-.7px}.project-card p{max-width:350px;color:var(--muted);font-size:14px;line-height:1.7;margin-top:10px;margin-bottom:28px}.project-url{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:17px;border-top:1px solid var(--line);color:var(--accent);font:11px var(--font-sans)}.project-url>span{font-size:15px;line-height:12px}.text-link{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.text-link svg{width:13px;height:13px}.text-link:hover{color:var(--accent)}
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.post-card{display:flex;flex-direction:column;padding:22px 21px 18px;background:var(--surface);border:1px solid var(--line);border-radius:4px}.post-header{display:flex;align-items:center;gap:10px}.post-header img{border-radius:50%;object-fit:cover}.post-header>div{display:flex;flex-direction:column;gap:3px}.post-name{font-size:12px;font-weight:600}.post-handle{font-size:10px;color:var(--muted)}.post-x{margin-left:auto;width:15px;height:15px;color:var(--muted)}.post-text{padding-top:22px;padding-bottom:24px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.quote-context{display:flex;gap:8px;align-items:center;margin-top:1px;margin-bottom:20px;padding:12px 10px;border:1px solid var(--line);border-radius:4px;font-size:11px;color:var(--muted)}.quote-context:hover{color:var(--accent)}.quote-context>span:last-child{margin-left:auto}.post-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.post-footer a{color:var(--ink);padding:4px 0}.post-footer a:hover{color:var(--accent)}.post-footer a>span{margin-left:4px}.posts-note{padding-top:17px;font-size:11px;color:var(--muted)}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:100px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.footer-brand{display:flex;align-items:center;gap:10px}.footer-brand svg{width:24px;height:24px;stroke-width:1.4}.site-footer nav{display:flex;gap:22px}
@media(min-width:1500px){.hero{padding-top:100px;padding-bottom:100px}}
@media(max-width:900px){.shell{padding:0 30px}.hero{grid-template-columns:minmax(0,1fr) 230px;gap:35px;padding:65px 0}.portrait-wrap{width:230px;padding:15px}h1{font-size:61px;letter-spacing:-3.5px}.intro{font-size:18px}.bio{font-size:14px}.post-grid{gap:12px}.post-card{padding:18px 16px}.post-text{font-size:12px}.post-footer{flex-wrap:wrap;gap:6px}}
@media(max-width:700px){.shell{padding:0 22px}.site-header{min-height:82px}.header-right{gap:12px}.header-nav{display:none}.brand{font-size:17px;gap:8px}.brand-icon{width:25px;height:25px}.hero{grid-template-columns:1fr;gap:38px;padding:44px 0 48px}.hero-copy{grid-row:2}.portrait-wrap{grid-row:1;width:150px;padding:9px;justify-self:start;margin-left:3px}.portrait-caption{display:none}.cross-bottom{bottom:-6px}.portrait-frame{padding:4px}.eyebrow{font-size:11px}h1{margin-top:14px;margin-bottom:20px;font-size:clamp(46px,11vw,66px);letter-spacing:-3px}.intro{font-size:18px}.bio{font-size:14px}.social-links{margin-top:25px;flex-wrap:wrap}.button{padding:12px 14px}.section{padding-bottom:36px}.section-heading{padding:21px 0}h2{font-size:13px;gap:9px}.project-grid,.post-grid{grid-template-columns:1fr;gap:14px}.project-card{padding:22px}.project-top{margin-bottom:19px}.project-card p{max-width:none;margin-bottom:23px}.post-card{padding:21px}.post-text{font-size:14px;line-height:1.75}.post-footer{font-size:11px;flex-wrap:nowrap}.post-name{font-size:13px}.post-handle{font-size:11px}.site-footer{align-items:flex-start;flex-direction:column;justify-content:center;gap:17px;padding:24px 0}.site-footer nav{gap:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.project-card:hover,.portrait-frame:hover{transform:none}}

html[data-theme=dark] .brand{color:var(--accent)}
@media(max-width:420px){.site-header{gap:10px}.site-header .brand{font-size:15px}.site-header .domain{display:none}}
