*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--black:#000;--white:#fff;--gray:#777;--gray-border:#ddd;--surface:#f8f8f8;--font-mono:"Iosevka Custom Web", "SF Mono", "Consolas", monospace;--font-size:.95rem;--content-width:760px;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:3rem;--spacing-xl:5rem;--spacing-2xl:8rem}::selection{background:var(--black);color:var(--white)}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-mono);font-size:var(--font-size);color:var(--black);background:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:500;line-height:1.7;overflow-x:hidden}h1,h2,h3,p,a,li,span,time,button{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:none}a:hover{color:var(--gray)}img,canvas{max-width:100%;display:block}.label{color:var(--gray);text-transform:uppercase;letter-spacing:.1em}p.label:before,.article-header .caps:before,.project-header .caps:before{content:"# "}.muted,.dim{color:var(--gray)}.caps{text-transform:uppercase;letter-spacing:.1em}.bold{font-weight:600}.container{max-width:var(--content-width);padding:0 var(--spacing-md);margin:0 auto}section{padding:var(--spacing-xl) 0}.hero{padding:var(--spacing-2xl) 0 var(--spacing-xl);align-items:center;gap:var(--spacing-xl);display:flex}.hero-text{flex:1}.hero-text .hero-title,.error-state .hero-title{color:var(--black);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--spacing-md);font-weight:700}.hero-text p{color:var(--gray);margin-bottom:var(--spacing-sm)}.hero-text a,.error-state a{color:var(--black);text-transform:uppercase;letter-spacing:.1em}.hero-text a:hover,.error-state a:hover{color:var(--gray)}.hero-portrait{flex-shrink:0;width:280px;position:relative;overflow:hidden}.hero-portrait img{width:100%}.hero-portrait:after{content:"";background:linear-gradient(to bottom, transparent, var(--white));pointer-events:none;height:60px;position:absolute;bottom:0;left:0;right:0}.timeline{padding-left:1.5em}.timeline-item{padding-bottom:var(--spacing-md);position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item>span{display:block}.timeline-item:before{content:"";border-left:2px solid var(--gray-border);position:absolute;top:0;bottom:0;left:calc(.5ch - 1.5em - 1px)}.timeline-item:last-child:before{height:.85em;bottom:auto}.timeline-item:after{content:"";border-top:2px solid var(--gray-border);width:calc(1em - .5ch + 1px);position:absolute;top:.85em;left:calc(.5ch - 1.5em - 1px)}.project-grid{gap:var(--spacing-md);grid-template-columns:1fr;display:grid}.project-card{padding:var(--spacing-md);border:1px solid var(--gray-border);transition:border-color .2s;display:block}.project-card:hover{border-color:var(--black);color:var(--black)}.project-card .label,.project-card .bold,.project-card .muted{display:block}.project-card .label,.project-card .bold{margin-bottom:var(--spacing-xs)}.tech-stack{margin-top:var(--spacing-sm);gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.tech-tag{color:var(--gray);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--gray-border);padding:.1rem .4rem}.post-list{list-style:none}.post-item{padding:var(--spacing-sm) 0}.post-item:first-child{padding-top:0}.post-item a{display:block}.post-item .bold{text-transform:uppercase;letter-spacing:.1em;transition:color .2s;display:block}.post-item a:hover .bold{color:var(--gray)}.post-item .dim{margin-top:.15rem;display:block}.post-item .muted{margin-top:var(--spacing-xs);display:block}.article-header{padding:var(--spacing-xl) 0 var(--spacing-lg)}.article-header .caps{margin-bottom:var(--spacing-xs);display:block}.article-content{padding-bottom:var(--spacing-xl)}.article-content p{color:var(--black);margin-bottom:var(--spacing-sm)}.project-header{padding:var(--spacing-xl) 0 var(--spacing-2xl)}.project-header .label{margin-bottom:var(--spacing-sm);display:block}.project-header .caps{margin-bottom:var(--spacing-sm);font-weight:700;display:block}.project-header .muted{display:block}.project-title,.project-link{margin-top:var(--spacing-sm)}.project-section{padding:var(--spacing-lg) 0}.project-section .label{margin-bottom:var(--spacing-md);display:block}.project-section p{color:var(--black);margin-bottom:var(--spacing-sm)}.project-section img{object-fit:contain;width:100vw;max-width:none;max-height:50vh;margin-left:calc(50% - 50vw);margin-top:var(--spacing-md);margin-bottom:var(--spacing-md);padding:var(--spacing-lg) calc((100vw - 100%) / 2);background:var(--surface)}.project-section .img-caption{color:var(--gray);margin-top:calc(-1 * var(--spacing-sm));margin-bottom:var(--spacing-md)}.project-metrics{gap:var(--spacing-md);margin:var(--spacing-md) 0;text-align:center;grid-template-columns:repeat(3,1fr);display:grid}.metric-value{font-weight:600;display:block}.metric-label{color:var(--gray);text-transform:uppercase;letter-spacing:.08em}.about-content{padding:var(--spacing-xl) 0}.about-content p{color:var(--black);margin-bottom:var(--spacing-md)}.about-content p:last-child{margin-bottom:0}.back-link{color:var(--gray);padding-top:var(--spacing-lg);transition:color .2s;display:inline-block}.back-link:hover{color:var(--black)}.signature{width:200px;margin-top:var(--spacing-lg);margin-left:auto;display:block}footer{padding:var(--spacing-lg) 0;margin-top:var(--spacing-xl)}footer .container{justify-content:space-between;align-items:center;display:flex}footer p,footer a{color:var(--gray);text-transform:uppercase;letter-spacing:.08em}footer a:hover{color:var(--black)}.footer-links{gap:var(--spacing-md);display:flex}.hero-portrait.coin-ready{overflow:visible}.hero-portrait.coin-ready img{opacity:0}.hero-portrait.coin-ready:after{display:none}.hero-portrait .coin-canvas{pointer-events:none;top:50%;left:50%;transform:translate(-50%,-50%);width:2000px!important;height:2000px!important;position:absolute!important}.hero-portrait.coin-active{cursor:pointer}.error-state{padding-top:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.error-state .muted{margin-bottom:var(--spacing-sm);display:block}@media (prefers-color-scheme:dark){:root{--black:#fff;--white:#000;--gray:#999;--gray-border:#333;--surface:#111}.signature{filter:invert()}}@media (width<=640px){.hero{padding:var(--spacing-xl) 0 var(--spacing-lg);gap:var(--spacing-lg);flex-direction:column-reverse}.hero-portrait{width:240px}.project-metrics,footer .container{gap:var(--spacing-sm);text-align:left;grid-template-columns:1fr;display:grid}.footer-links{gap:var(--spacing-sm);flex-wrap:wrap}}
