:root{color-scheme:dark;--color-surface: var(--palette-surface);--color-text: var(--palette-text);--color-text-muted: var(--palette-text-muted);--color-border: var(--palette-border);--color-accent: var(--palette-accent);--color-info: var(--palette-info);--color-danger: var(--palette-danger);--selection-background: var(--palette-text);--selection-text: var(--palette-surface);--layout-content: 980px;--layout-page-padding: clamp(1rem, 3vw, 2rem);--font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-family-sans: Inter, ui-sans-serif, system-ui, sans-serif;--font-family-pixel: "Press Start 2P", monospace;--space-2xs: .2rem;--space-xs: .35rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.25rem;--space-2xl: 1.5rem;--space-3xl: 2rem;--space-4xl: 2.5rem;--space-section: clamp(2.5rem, 5vw, 4rem);--type-meta: .62rem;--type-label: .7rem;--type-body: .9rem;--type-heading: clamp(1.4rem, 2.5vw, 2rem);--type-heading-transform: uppercase;--control-border: var(--color-border);--control-border-active: var(--color-text);--control-text: var(--color-text-muted);--control-text-active: var(--color-text);--surface-page: var(--color-surface);--surface-divider: var(--color-border)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark],:root:not([data-theme]){--palette-surface: #050505;--palette-text: #f4f4f0;--palette-text-muted: #8b8b87;--palette-border: #292929;--palette-accent: #f4f4f0;--palette-info: #6d9cff;--palette-danger: #ff5f56}:root[data-theme=light]{--palette-surface: #f5f5f2;--palette-text: #090909;--palette-text-muted: #666660;--palette-border: #d6d6d0;--palette-accent: #090909;--palette-info: #245bd6;--palette-danger: #d9322b}@font-face{font-family:"Press Start 2P";src:url(/fonts/press-start-2p.ttf) format("truetype");font-display:swap;font-style:normal;font-weight:400}:root{color-scheme:dark}*{box-sizing:border-box}img,svg{max-inline-size:100%}html{scroll-behavior:smooth;background:var(--color-surface);scrollbar-color:var(--color-text-muted) var(--color-surface);scrollbar-width:thin}body{min-width:320px;min-height:100vh;margin:0;background:var(--color-surface);color:var(--color-text);font-family:var(--font-family-sans);line-height:1.5;overflow-x:hidden}::selection{background:var(--selection-background);color:var(--selection-text)}body::-webkit-scrollbar{width:.6rem}body::-webkit-scrollbar-track{background:var(--color-surface)}body::-webkit-scrollbar-thumb{background:var(--color-border);border:.15rem solid var(--color-surface)}body::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-shell main{flex:1}a{color:inherit;text-decoration:none}a:hover{color:var(--color-accent)}button{color:inherit;font:inherit}.container{max-width:var(--layout-content);margin-inline:auto;padding-inline:var(--layout-page-padding)}.skip-link{position:absolute;inset-block-start:-3rem;left:1rem;padding:.5rem 1rem;background:var(--color-text);color:var(--color-surface);z-index:2}.skip-link:focus{inset-block-start:1rem}.site-header{min-height:3.5rem;display:flex;align-items:center;gap:1.25rem;border-bottom:1px solid var(--color-border);font:.7rem var(--font-family-mono);min-inline-size:0}.wordmark{margin-right:auto;letter-spacing:-.04em;font-size:.8rem;font-weight:600}.project-index{color:var(--color-accent)}nav{display:flex;gap:1.5rem;color:var(--color-text-muted)}nav a:hover,nav a.active{color:var(--color-text)}nav a.active{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35rem}.theme-toggle{border:0;background:transparent;padding:.5rem 0;cursor:pointer;color:var(--color-text-muted);font:inherit}.theme-toggle:hover{color:var(--color-text)}.hero{min-height:auto;padding-block:3.5rem 4rem;display:flex;flex-direction:column;justify-content:space-between}.eyebrow{margin:0 0 .75rem;font:.62rem var(--font-family-mono);letter-spacing:.08em;text-transform:uppercase}.hero h1,h2,h3,p{margin-top:0}h1,h2,h3{text-transform:var(--type-heading-transform)}.hero h1{max-width:24ch;margin-bottom:2rem;font-family:var(--font-family-pixel);font-size:clamp(1.9rem,4vw,3.25rem);font-size-adjust:.5;line-height:1.45;letter-spacing:0;font-weight:400}.hero h1 span,h2 span{color:var(--color-text-muted)}.hero-bottom{display:flex;flex-direction:column;align-items:start;justify-content:space-between;gap:1.25rem}.lede{max-width:42ch;margin:0;color:var(--color-text-muted);font-size:.9rem}.arrow-link{font:.68rem var(--font-family-mono);text-transform:uppercase}.arrow-link span{color:var(--color-accent);margin-left:.5rem}.section{padding-block:clamp(2rem,4vw,3rem);border-top:1px solid var(--color-border)}.section-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1.5rem;margin-bottom:1.25rem}.section h1,.section h2{margin:0;font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.05;letter-spacing:-.045em;font-weight:600}.project-grid{border-top:1px solid var(--color-border)}.project-card{min-inline-size:0;padding:1.25rem 0;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column}.project-card__top{display:flex;justify-content:space-between;color:var(--color-text-muted);font:.6rem var(--font-family-mono);text-transform:uppercase;min-inline-size:0}.project-card__top>*{min-inline-size:0;overflow-wrap:anywhere}.project-card h3{margin-block:.75rem .5rem;font-size:1.2rem;letter-spacing:-.05em}.project-card p{max-width:34ch;margin-bottom:.75rem;color:var(--color-text-muted);font-size:.85rem}.tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto;padding-top:1rem;color:var(--color-text-muted);font:.58rem var(--font-family-mono)}.tags span{border:1px solid var(--control-border);padding:.2rem .35rem}.project-links{display:flex;gap:.8rem;padding-top:.75rem;font:.62rem var(--font-family-mono)}.project-links a:first-child{color:var(--color-accent)}.work-filters{display:grid;gap:.75rem;margin-bottom:1rem;padding-block:1rem;border-block:1px solid var(--color-border)}.work-filters .eyebrow{margin:0;color:var(--control-text)}.work-filters__options{display:flex;flex-wrap:wrap;gap:.4rem}.work-filters button{border:1px solid var(--color-border);padding:.35rem .5rem;background:transparent;color:var(--color-text-muted);cursor:pointer;font:.62rem var(--font-family-mono)}.work-filters button:hover,.work-filters button.active{border-color:var(--control-border-active);color:var(--control-text-active)}.work-result-count{margin:0 0 .75rem;color:var(--color-text-muted);font:.62rem var(--font-family-mono)}.post-list{margin-top:1.25rem}.blog-title{margin-bottom:0}.post-card{padding:1.25rem 0;border-bottom:1px solid var(--color-border)}.post-card__meta{display:flex;justify-content:space-between;gap:1rem;color:var(--color-text-muted);font:var(--type-meta) var(--font-family-mono);text-transform:uppercase}.post-card__meta>*{min-inline-size:0}.post-card h2{margin:.75rem 0 .4rem;font-size:1.2rem;overflow-wrap:anywhere}.post-card p,.post__excerpt{max-width:48ch;color:var(--color-text-muted)}.post-card .tags{margin-top:.75rem}.post__header{max-width:52rem;padding-bottom:1.75rem;border-bottom:1px solid var(--color-border)}.post__header h1{max-width:18ch;margin:0 0 1rem;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1;letter-spacing:-.05em;overflow-wrap:anywhere}.post__excerpt{margin:0;font-size:1rem}.post__body{max-width:68ch;padding-block:1.75rem}.post__body h1,.post__body h2,.post__body h3{margin:2rem 0 .75rem;line-height:1.1;letter-spacing:-.03em}.post__body h1:first-child,.post__body h2:first-child{margin-top:0}.post__body p,.post__body li{color:var(--color-text-muted)}.post__body ul{padding-left:1.2rem}.section--split{display:grid;grid-template-columns:1fr;gap:2rem}.about-copy{max-width:46ch;color:var(--color-text-muted);font-size:1rem}.about-copy p+p{margin-top:1rem}.capabilities{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:2rem;font:.62rem var(--font-family-mono)}.capabilities .eyebrow{flex-basis:100%}.capabilities span{border:1px solid var(--color-border);padding:.35rem .5rem;color:var(--color-text)}.contact h2{margin-bottom:1.5rem}.contact-copy{max-width:42ch;margin:1rem 0 .75rem;color:var(--color-text-muted)}.contact-email{display:inline-block;margin-bottom:2rem;border-bottom:1px solid var(--color-border);padding-bottom:.2rem;font:.75rem var(--font-family-mono)}.contact-email:hover{border-color:var(--color-accent)}.social-links{display:flex;flex-wrap:wrap;gap:1rem;font:.7rem var(--font-family-mono)}.social-links a{border-bottom:1px solid var(--color-border);padding-bottom:.2rem}.social-links a:hover{border-color:var(--color-accent)}.site-footer{display:grid;grid-template-columns:1fr;gap:2rem;padding-block:2.5rem 2rem;border-top:1px solid var(--color-border);color:var(--color-text-muted);font:.65rem var(--font-family-mono)}.site-footer a{color:var(--color-text)}.site-footer__intro{display:grid;gap:.5rem}.site-footer__name{width:fit-content;color:var(--color-text);font-size:.8rem;font-weight:600;letter-spacing:-.04em}.site-footer p{max-width:28ch;margin:0;line-height:1.6}.site-footer__nav,.site-footer__links{display:flex;flex-wrap:wrap;gap:1rem;align-content:start}.site-footer__nav a:hover,.site-footer__links a:hover{color:var(--color-text)}.site-footer__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.site-footer__actions{display:flex;align-items:center;gap:1.25rem}.not-found a{font:.7rem var(--font-family-mono);color:var(--color-accent)}.back-link{display:inline-block;margin-bottom:2rem;color:var(--color-text-muted);font:.68rem var(--font-family-mono);text-transform:uppercase}.back-link:hover{color:var(--color-text)}.project-detail__header{display:flex;align-items:start;gap:1.25rem;max-width:48rem;padding-bottom:2.5rem;border-bottom:1px solid var(--color-border)}.project-detail__header>div{min-inline-size:0}.project-detail__icon{flex:0 0 auto;border:1px solid var(--color-border)}.project-detail__header h1{margin:0 0 1rem;font-size:clamp(2rem,5vw,3.5rem);line-height:1;letter-spacing:-.05em;overflow-wrap:anywhere}.project-detail__summary{max-width:42ch;margin:0;color:var(--color-text-muted);font-size:1rem}.project-detail__banner{display:block;width:100%;height:auto;margin-block:2rem;border:1px solid var(--color-border)}.project-detail__body{max-width:68ch;padding-block:.5rem 2.5rem}.project-detail__body h1,.project-detail__body h2,.project-detail__body h3{margin:2rem 0 .75rem;line-height:1.1;letter-spacing:-.03em}.project-detail__body h1:first-child,.project-detail__body h2:first-child{margin-top:0}.project-detail__body p,.project-detail__body li{color:var(--color-text-muted)}.project-detail__body ul{padding-left:1.2rem}.project-detail__links{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1rem;border-top:1px solid var(--color-border);font:.68rem var(--font-family-mono)}.project-detail__links a:first-child{color:var(--color-accent)}.project-card__icon{width:3rem;height:3rem;margin-bottom:.75rem;border:1px solid var(--color-border)}.project-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:2rem 0;background:var(--color-border);border:1px solid var(--color-border)}.project-facts div{padding:1rem;background:var(--color-surface);min-inline-size:0}.project-facts dt{color:var(--color-text-muted);font:.6rem var(--font-family-mono);text-transform:uppercase}.project-facts dd{margin:.5rem 0 0;font-size:.85rem;overflow-wrap:anywhere}.project-section{max-width:68ch;padding-block:1rem}.project-section h2{margin-bottom:.75rem;font-size:1.2rem}.project-section ul{margin:0;padding-left:1.2rem;color:var(--color-text-muted)}.project-screenshots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-screenshots figure{margin:0}.project-screenshots img{display:block;width:100%;border:1px solid var(--color-border)}.project-screenshots figcaption{margin-top:.5rem;color:var(--color-text-muted);font:.65rem var(--font-family-mono)}.project-navigation{display:flex;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--color-border);font:.68rem var(--font-family-mono)}.project-navigation a{max-width:45%;color:var(--color-text-muted);min-inline-size:0;overflow-wrap:anywhere}.project-navigation a:hover{color:var(--color-text)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}@media(min-width:640px){.hero{padding-block:5rem}.hero-bottom{flex-direction:row;align-items:end}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border)}.project-card{min-height:14rem;padding:.85rem;border:0;background:var(--color-surface)}}@media(min-width:640px){.site-footer{grid-template-columns:2fr 1fr 1fr}.site-footer__base{grid-column:1 / -1}}@media(min-width:900px){.hero{padding-block:6rem}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border)}.section--split{grid-template-columns:minmax(12rem,1fr) 1.2fr;gap:2.5rem}}@media(max-width:600px){body{font-size:1.08rem}.site-header,.site-header nav,.theme-toggle{font-size:.86rem}.eyebrow,.project-card__top,.work-result-count,.post-card__meta,.capabilities,.site-footer,.project-facts dt,.project-screenshots figcaption{font-size:.8rem}.lede,.project-card p,.about-copy,.contact-copy,.post-card p,.post__excerpt,.project-detail__summary,.project-detail__body,.post__body,.project-section{font-size:1.08rem}.project-card h3,.post-card h2{font-size:1.4rem}.project-detail__body,.post__body{line-height:1.7}.site-header{width:100%;max-width:none;margin-inline:0;gap:1rem;padding-block:.85rem;padding-inline:1rem;flex-wrap:nowrap}.site-header nav{gap:.75rem;min-inline-size:0;margin-inline-start:auto;justify-content:flex-end;flex-wrap:nowrap}.site-header nav a{padding-block:.25rem}.site-footer{width:100%;max-width:none;margin-inline:0;padding-inline:1rem;align-items:start;gap:2.5rem;padding-block:3rem 2.5rem;text-align:left}.site-footer__intro{width:100%;gap:.75rem}.site-footer__name{font-size:.95rem}.site-footer p{max-width:30ch;font-size:.9rem;line-height:1.7}.site-footer__nav,.site-footer__links{width:100%;gap:1.25rem 1.5rem}.site-footer__base{width:100%;align-items:start;flex-direction:column;gap:.75rem;padding-top:1.25rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media(max-width:600px){.project-detail__header{gap:.75rem}.project-detail__icon{width:3.5rem;height:3.5rem}.project-detail__header h1{font-size:clamp(1.9rem,9vw,2.6rem)}.project-facts,.project-screenshots{grid-template-columns:1fr}}
