.workspace-shell{grid-template-columns:224px minmax(0,1fr);height:100dvh;min-height:0;display:grid}.workspace-sidebar{overscroll-behavior:contain;border-right:1px solid var(--line);background:var(--surface);flex-direction:column;min-height:0;padding:32px 20px 24px;display:flex;overflow:auto}.workspace-brand{padding:0 12px}.workspace-brand>a{font-family:var(--font-mono);letter-spacing:-.06em;font-size:30px;font-weight:600}.workspace-brand>a span{color:var(--accent)}.workspace-brand p{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;margin:10px 0 34px;font-size:11px}.workspace-nav{gap:6px;display:grid}.workspace-nav a{border:1px solid #0000;justify-content:space-between;align-items:center;min-height:46px;padding:10px 12px;font-size:14px;transition:background-color .18s,border-color .18s;display:flex}.workspace-nav a[aria-current=page]{background:var(--paper);border-color:var(--line);color:var(--accent)}.workspace-nav-count{color:var(--muted);font:12px var(--font-mono)}.workspace-sidebar-bottom{gap:20px;margin-top:auto;padding:40px 12px 0;display:grid}.workspace-sidebar-bottom .theme-control{width:100%}.workspace-home-link{font-size:14px}.workspace-contacts{gap:12px;display:grid}.workspace-contacts a{color:var(--muted);font:12px var(--font-mono);justify-content:space-between;display:flex}.workspace-content{overscroll-behavior:contain;scrollbar-gutter:stable;min-width:0;min-height:0;overflow-y:auto}.workspace-content-inner{flex-direction:column;max-width:1260px;min-height:100%;margin-inline:auto;padding:48px clamp(28px,4.3vw,76px) 24px;display:flex}.workspace-heading{justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:30px;display:flex}.workspace-heading h1{margin:0;font-size:clamp(32px,3vw,42px);font-weight:500;line-height:1.4}.workspace-heading h1 span{color:var(--accent);padding-left:4px}.workspace-heading p{color:var(--muted);margin:12px 0 0;font-size:14px;line-height:1.8}.workspace-total{color:var(--muted);font:11px var(--font-mono);white-space:nowrap;padding-top:18px}.content-tools{margin-bottom:30px}.content-search-line{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.content-search{border:1px solid var(--line);background:var(--surface);align-items:center;gap:12px;width:min(440px,100%);min-height:46px;padding:8px 14px;display:flex}.content-search:focus-within{outline:2px solid var(--accent);outline-offset:2px}.content-search>span[aria-hidden]{color:var(--muted);font-size:25px;line-height:1}.content-search input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:none;padding:2px 0;font-family:inherit;font-size:14px;line-height:1.6}.content-search input::placeholder{color:var(--muted)}.content-result-count{color:var(--muted);white-space:nowrap;margin:0 0 0 auto;font-size:12px}.content-clear,.content-empty-clear{border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;padding:8px 12px;font-size:14px}.content-categories{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.content-categories button{border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--muted);font:inherit;cursor:pointer;padding:7px 12px;font-size:14px}.content-categories button[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.content-categories button:active,.content-clear:active,.content-empty-clear:active{opacity:.8}.content-group+.content-group{margin-top:38px}.content-group-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:14px;display:flex}.content-group-heading h2{margin:0;font-size:16px;font-weight:500}.content-group-heading>span{color:var(--muted);font:11px var(--font-mono);letter-spacing:.055em}.content-row{border-bottom:1px solid var(--line);padding:24px 0}.content-project-row{grid-template-columns:136px minmax(0,1fr) 38px;align-items:center;gap:24px;display:grid}.content-project-image{border:1px solid var(--line);background:var(--surface);display:block;overflow:hidden}.content-project-image img{aspect-ratio:4/3;object-fit:contain;width:100%;height:auto;display:block}.content-skills-image img{object-fit:contain}.content-row-copy{min-width:0}.content-row-copy h3{overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:500;line-height:1.55}.content-row-copy h3 a{display:inline}.content-row-copy h3 a span{color:var(--accent);font-family:var(--font-mono);margin-left:12px;font-size:17px;display:inline-block}.content-project-row h3{font-family:var(--font-mono);font-size:21px}.content-row-copy p{color:var(--muted);max-width:64em;margin:8px 0 0;font-size:14px;line-height:1.85}.content-row-tags{color:var(--accent);flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;padding:0;font-size:12px;line-height:1.7;list-style:none;display:flex}.content-row-year{color:var(--muted);font:12px var(--font-mono);align-self:start;margin-top:4px}.content-article-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 20px;margin-bottom:10px;font-size:12px;display:flex}.content-article-meta time{font-family:var(--font-mono)}.content-empty{border-top:1px solid var(--line);padding:48px 0 64px}.content-empty h2{margin:0;font-size:22px;font-weight:500}.content-empty p{color:var(--muted);margin:12px 0 24px;font-size:14px}.workspace-footer{color:var(--muted);font:11px var(--font-mono);justify-content:space-between;gap:20px;margin-top:auto;padding-top:42px;line-height:1.8;display:flex}.workspace-about{border-top:1px solid var(--line);grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr);gap:40px;padding-top:32px;display:grid}.workspace-about>h2{margin:0;font-size:clamp(25px,3vw,36px);font-weight:500;line-height:1.7}.workspace-about-copy p{margin:0 0 24px;font-size:16px;line-height:2}.workspace-about-contact{margin-top:42px}.workspace-about-contact h2{font-size:22px;font-weight:500}.workspace-about-contact .contacts{margin-top:24px}@media (hover:hover) and (pointer:fine){.workspace-nav a:hover{border-color:var(--line);background:var(--paper)}.content-row-copy h3 a:hover{color:var(--accent)}.content-clear:hover,.content-empty-clear:hover,.content-categories button:hover{border-color:var(--accent)}.workspace-contacts a:hover,.workspace-home-link:hover,.workspace-footer a:hover{color:var(--accent)}}@media (width>=800px){body:has(.workspace-shell){overflow:hidden}}@media (width<=1050px){.content-project-row{grid-template-columns:108px minmax(0,1fr);gap:20px}.content-row-year{display:none}.workspace-about{grid-template-columns:1fr;gap:28px}}@media (width<=799px){.workspace-shell{height:auto;display:block}.workspace-sidebar{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:18px;padding:20px;display:grid;overflow:visible}.workspace-brand{padding:0}.workspace-brand>a{font-size:28px}.workspace-brand p,.workspace-home-link,.workspace-contacts{display:none}.workspace-nav{flex-wrap:wrap;grid-area:2/1/auto/-1;gap:6px;display:flex}.workspace-nav a{gap:12px;min-height:44px;padding:8px 10px}.workspace-nav-count{font-size:11px}.workspace-sidebar-bottom{grid-area:1/2;margin:0;padding:0}.workspace-content{scrollbar-gutter:auto;overflow:visible}.workspace-content-inner{min-height:0;padding:32px 20px 24px}.workspace-heading{gap:12px;padding-bottom:24px}.workspace-heading h1{font-size:32px}.workspace-total{padding-top:14px;font-size:10px}.content-tools{margin-bottom:24px}.content-search-line{gap:12px}.content-search{width:100%}.content-search input{font-size:16px}.content-result-count{font-size:12px}.content-project-row{grid-template-columns:82px minmax(0,1fr);align-items:start;gap:16px}.content-project-image{margin-top:4px}.content-project-image img{aspect-ratio:1}.content-project-row h3{font-size:20px}.content-row-tags{gap:4px 12px}.content-row{padding:22px 0}.content-group+.content-group{margin-top:32px}.workspace-about{padding-top:26px}.workspace-about-copy p{font-size:16px}.workspace-footer{font-size:10px}}@media (width<=380px){.workspace-nav{gap:4px}.workspace-nav a{gap:6px;padding-inline:8px;font-size:14px}.workspace-nav-count{display:none}.content-project-row{grid-template-columns:68px minmax(0,1fr);gap:12px}}@media (prefers-reduced-motion:reduce){.workspace-shell *,.workspace-shell :before,.workspace-shell :after{scroll-behavior:auto;transition:none!important}}
