:root{--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-accent: ui-monospace, "Cascadia Code", "Fira Code", monospace;--reading-width: 72rem;--mobile: 768px;--font-xs: .75rem;--font-s: .875rem;--font-r: 1rem;--font-m: 1.125rem;--font-l: 2rem;--font-xl: 3rem;--size-1x: 1rem;--size-2x: 2rem;--size-3x: 3rem;--primary-bright: #ffffff;--primary: #bfbfbf;--primary-dim: #888889;--primary-dark: #262627;--secondary: #7feaff;--secondary-bright: #5f8cff;--background: #060708;--background-dim: #0e0f11;--border: #262627;color-scheme:dark}html{font-size:16px}body{font-family:var(--font-sans);color:var(--primary-dim);background:var(--background);line-height:1.6;margin:0;-webkit-font-smoothing:antialiased}::selection{color:var(--background);background:var(--secondary)}h1{font-size:var(--font-xl);font-weight:600;color:var(--primary-bright);letter-spacing:-.05em;margin:0 0 var(--size-1x)}h2{font-size:var(--font-l);font-weight:700;color:var(--primary);margin:var(--size-2x) 0 var(--size-1x)}h3{font-size:var(--font-m);font-weight:600;color:var(--primary);margin:0 0 .5rem}h4{font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--primary-dim);margin:0 0 .75rem}p{margin:0 0 var(--size-1x)}a{color:var(--primary);font-weight:600;text-decoration:none}a:hover{color:var(--primary-bright)}ul{margin:0;padding:0;list-style:none}img{max-width:100%;height:auto;border-radius:.5rem}.site-header{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--background) 92%,transparent);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.site-nav ul{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1.5rem;max-width:var(--reading-width);margin:0 auto;padding:1rem 1.5rem}.site-nav a{font-size:var(--font-s)}.site-nav a.is-active{color:var(--secondary)}.site-nav .site-brand a{color:var(--primary-bright)}main{max-width:var(--reading-width);margin:0 auto;padding:var(--size-2x) 1.5rem var(--size-3x)}.site-footer{border-top:1px solid var(--border);background:var(--background-dim);margin-top:var(--size-3x)}.site-footer__inner{max-width:var(--reading-width);margin:0 auto;padding:var(--size-2x) 1.5rem;display:grid;gap:var(--size-2x)}@media(min-width:768px){.site-footer__inner{grid-template-columns:repeat(3,1fr)}.site-footer__inner .site-footer__wide{grid-column:span 3}}.site-footer section ul{display:flex;flex-direction:column;gap:.75rem}.site-footer p{font-size:var(--font-s);margin:.25rem 0 0}.site-footer__meta{font-size:var(--font-xs);color:var(--primary-dim);margin-top:var(--size-1x)}.site-footer__meta a{color:var(--secondary)}.page-header{margin-bottom:var(--size-2x);padding-bottom:var(--size-1x);border-bottom:1px solid var(--border)}.page-header .pre-title{font-family:var(--font-accent);font-size:var(--font-s);color:var(--secondary);margin:0 0 .5rem}.page-header .subtitle{font-size:var(--font-r);color:var(--primary-dim);max-width:50ch}.stub-banner{font-family:var(--font-accent);font-size:var(--font-xs);color:var(--secondary);background:color-mix(in srgb,var(--secondary) 12%,transparent);border:1px solid color-mix(in srgb,var(--secondary) 35%,transparent);border-radius:.5rem;padding:.5rem .75rem;margin-bottom:var(--size-2x)}.home-section{padding:var(--size-2x) 0;border-bottom:1px solid var(--border)}.home-section:last-child{border-bottom:none}.card-grid{display:grid;gap:var(--size-1x)}@media(min-width:640px){.card-grid{grid-template-columns:repeat(2,1fr)}}.card{border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;background:var(--background-dim);transition:border-color .2s}.card:hover{border-color:var(--secondary)}.card h3{margin:0}.card .meta{font-size:var(--font-xs);color:var(--primary-dim);margin-top:.5rem}.article-list{display:flex;flex-direction:column;gap:var(--size-1x)}.article-card{display:flex;gap:1rem;border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;background:var(--background-dim)}.article-card__thumb{flex-shrink:0;display:block;border-radius:.5rem;overflow:hidden}.article-card__thumb img{display:block;width:120px;height:80px;object-fit:cover}.article-card__body{flex:1;min-width:0}.article-card .topics{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;font-size:var(--font-xs);color:var(--secondary)}.article-card .details{display:flex;flex-wrap:wrap;gap:1rem;font-size:var(--font-s);color:var(--primary-dim)}.achievement-list{display:flex;flex-direction:column;gap:var(--size-1x)}.achievement-card{border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;background:var(--background-dim)}.achievement-card__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.achievement-card h3{margin:0;font-size:var(--font-r)}.achievement-card h3 a{color:var(--secondary);text-decoration:none}.achievement-card h3 a:hover{text-decoration:underline}.achievement-card__year{font-size:var(--font-xs);color:var(--primary-dim)}.achievement-card p{margin:0;font-size:var(--font-s);color:var(--primary);line-height:1.5}.tool-list{display:flex;flex-direction:column;gap:var(--size-1x)}.tool-card{display:block;border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;background:var(--background-dim)}.tool-card:hover{border-color:var(--secondary)}.project-detail__stack{display:flex;flex-wrap:wrap;gap:.5rem}.project-detail__stack li{font-size:var(--font-xs);padding:.25rem .6rem;border-radius:99rem;border:1px solid var(--border);color:var(--primary)}.project-detail__gallery{display:grid;gap:var(--size-1x);margin-top:var(--size-1x)}@media(min-width:640px){.project-detail__gallery{grid-template-columns:repeat(2,1fr)}}.button-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:var(--size-1x)}.button{display:inline-block;font-family:var(--font-accent);font-size:var(--font-s);font-weight:700;padding:.65rem 1.5rem;border-radius:99rem;border:1px solid var(--secondary);color:var(--primary-bright);background:transparent}.button:hover{background:color-mix(in srgb,var(--secondary) 15%,transparent);color:var(--primary-bright)}.button--secondary{border-color:var(--primary-dark);color:var(--primary)}.button--secondary:hover{border-color:var(--secondary)}.meta{font-size:var(--font-s);color:var(--primary-dim)}
