@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/roboto-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/roboto-latin-500-normal.woff2)format("woff2")}:root{color-scheme:light dark;--surface:#fafafa;--surface-container-low:#f4f4f4;--surface-container:#eeeeee;--surface-container-high:#e8e8e8;--on-surface:#1a1c1c;--on-surface-variant:#45474a;--outline:#75777b;--outline-variant:#c5c7cb;--primary:#0b57d0;--shadow-1:0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.15);--shadow-2:0 1px 2px rgba(0, 0, 0, 0.3), 0 2px 6px 2px rgba(0, 0, 0, 0.15);--radius-m:12px;--radius-full:999px;--max:1200px;--gutter:1.5rem}@media(prefers-color-scheme:dark){:root{--surface:#131314;--surface-container-low:#1b1b1c;--surface-container:#1f2020;--surface-container-high:#2a2a2b;--on-surface:#e3e3e3;--on-surface-variant:#c4c7c5;--outline:#8e918f;--outline-variant:#444746;--primary:#a8c7fa}}*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--on-surface);font:1rem/1.5 Roboto,system-ui,-apple-system,segoe ui,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.site-header,main,.site-footer{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}.site-header{display:flex;align-items:center;gap:1.5rem;padding-top:1rem;padding-bottom:1rem}.site-brand{display:flex;flex-direction:column}.site-title{font-size:1.5rem;line-height:1.3333;font-weight:400}.site-tagline{color:var(--on-surface-variant);font-size:.875rem;line-height:1.4286;font-weight:500;letter-spacing:.03em}.site-links{display:flex;align-items:center;gap:.5rem}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);color:var(--on-surface-variant);transition:background-color .2s}.icon-button:hover{background:color-mix(in srgb,var(--on-surface) 8%,transparent)}.icon-button svg{width:1.5rem;height:1.5rem}.text-link{color:var(--primary);font-weight:500}main{padding-top:.5rem;padding-bottom:3rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1rem}.project-card{display:block;background:var(--surface-container-low);border-radius:var(--radius-m);box-shadow:var(--shadow-1);overflow:hidden;transition:box-shadow .2s}.project-card:hover,.project-card:focus-visible{box-shadow:var(--shadow-2)}.project-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--surface-container-high)}.project-card-body{padding:1rem}.project-card h2{font-size:1.125rem;line-height:1.3333;font-weight:500;margin:0}.project-header{padding:1rem 0 1.5rem}.project-header h1{font-size:1.75rem;line-height:1.2857;font-weight:400;margin:0}.project-intro{font-size:1.125rem;line-height:1.5556;color:var(--on-surface-variant);max-width:65ch;margin-top:.75rem}.board{width:100%;border-radius:var(--radius-m)}.project-nav{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.button{display:inline-flex;align-items:center;height:2.75rem;padding:0 1.5rem;border:1px solid var(--outline);border-radius:var(--radius-full);color:var(--primary);font-size:1rem;line-height:1.5;font-weight:500;letter-spacing:.00625em;transition:background-color .2s}.button:hover{background:color-mix(in srgb,var(--primary) 8%,transparent)}.page{max-width:65ch;font-size:1.125rem;line-height:1.5556}.page h1{font-size:1.75rem;line-height:1.2857;font-weight:400}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1rem;padding-bottom:2rem;color:var(--outline);font-size:.75rem;line-height:1.3333}.site-footer p{margin:0}@media(max-width:43.75em){:root{--gutter:1rem}.project-grid{grid-template-columns:1fr}}