@import "https://fonts.googleapis.com/css2?family=PT+Sans:wght@400;700&display=swap";:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:"PT Sans", "Segoe UI", Roboto, sans-serif;--heading:"PT Sans", "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:15px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:14px}}html{overflow-x:hidden}body{background:#fff;margin:0;overflow-x:hidden}#root{text-align:center;box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-.6px;margin:20px 0;font-size:42px}@media (width<=1024px){h1{margin:14px 0;font-size:30px}}h2{letter-spacing:-.12px;margin:0 0 8px;font-size:20px;line-height:118%}@media (width<=1024px){h2{font-size:18px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}html{background:#f5f5f5}.site-top-chrome{z-index:20;background:var(--bg);position:sticky;top:0}.top{background:var(--bg);isolation:isolate;justify-content:space-between;align-items:center;width:88%;margin-inline:auto;padding:24px 0 20px;display:flex;position:relative}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-shell.project-open{height:100vh;min-height:100dvh}.top-section{flex-shrink:0}.top-section-minimized .top{border-bottom:1px solid var(--border);padding-bottom:28px}.project-cycle-nav{box-sizing:border-box;pointer-events:none;z-index:2;background:0 0;justify-content:space-between;align-items:center;width:88%;margin:0;padding:0;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.project-cycle-link{pointer-events:auto;cursor:pointer;font:inherit;color:#c73717;background:0 0;border:0;border-bottom:1px solid #0000;padding:0;font-size:15px;font-weight:500;line-height:1.2;transition:border-color .2s;position:relative;top:35px}.project-cycle-link:hover{border-bottom-color:currentColor}.project-cycle-link:focus-visible{outline-offset:3px;outline:2px solid #c73717}.identity{text-align:left}.identity .name{letter-spacing:-.2px;margin:0;font-size:18px;font-weight:600}.identity .role{color:var(--text);font-size:14px;display:block}.contact .link{color:var(--text-h);border-bottom:1px solid #0000;text-decoration:none}.contact{align-items:center;margin-right:6px;display:flex}.all-projects-button{cursor:pointer;color:#c73717;font:inherit;opacity:0;pointer-events:none;background:0 0;border:0;border-bottom:1px solid #0000;padding:0;font-size:17px;font-weight:500;line-height:1.2;transition:border-color .2s,opacity .28s,transform .28s;position:absolute;bottom:8px;left:50%;transform:translate(-50%)translateY(4px)}.all-projects-button.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.all-projects-button:hover{border-bottom-color:currentColor}.all-projects-button:focus-visible{outline-offset:3px;outline:2px solid #c73717}.landing{opacity:1;grid-template-columns:220px minmax(0,580px);justify-content:center;align-items:center;gap:48px;max-height:520px;padding:21px 24px;transition:max-height .58s cubic-bezier(.22,1,.36,1),opacity .58s cubic-bezier(.22,1,.36,1),transform .58s cubic-bezier(.22,1,.36,1),padding .58s cubic-bezier(.22,1,.36,1);display:grid;overflow:hidden;transform:translateY(0)}.landing.landing-minimized{opacity:0;max-height:0;padding-top:0;padding-bottom:0;transform:translateY(-10px)}.avatar-wrap{place-items:center;display:grid}.avatar{object-fit:cover;border-radius:50%;width:220px;height:220px}.intro{text-align:left;color:#333;max-width:580px;font-family:L-PTSans,Segoe UI,Roboto,sans-serif}.intro h1{margin:0 0 10px;font-size:30px}.intro p{max-width:66ch;margin-top:12px;font-size:16px}.projects{text-align:left;box-sizing:border-box;clip-path:inset(0 -100vmax);background:#f5f5f5;flex:1;width:100%;padding:14px 24px;transition:padding .35s;box-shadow:0 0 0 100vmax #f5f5f5}.projects.projects-expanded{background:#fff;flex-direction:column;flex:auto;min-height:0;padding:0;display:flex;box-shadow:0 0 0 100vmax #fff}.projects-grid{margin-top:14px;grid-template-columns:repeat(3,1fr);gap:16px;width:90%;margin-inline:auto;display:grid}.card{color:var(--text-h);border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;min-height:290px;transition:box-shadow .2s,transform .1s;display:flex}.card:before{content:"";border-bottom:1px solid var(--border);background:#ececec;border-radius:10px 10px 0 0;height:180px;display:block}.card-with-image:before{display:none}.card-image{object-fit:cover;border-bottom:1px solid var(--border);border-radius:10px 10px 0 0;width:100%;height:180px;display:block}.card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.project-card-trigger{text-align:left;cursor:pointer;font:inherit;padding:0}.card-body{flex:1;padding:18px}.card h3{margin:0 0 6px;font-size:16px}.card p{color:var(--text);margin:0;font-size:13px}.project-tags{flex-wrap:wrap;gap:6px;margin:0 0 8px;display:flex}.project-tag{border:1px solid var(--border);height:18px;color:var(--text-h);background:#f5f5f580;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;line-height:1;display:inline-flex}.project-page-view{flex-direction:column;flex:auto;width:100%;min-height:0;display:flex}.project-frame{opacity:0;will-change:opacity, transform;background:#fff;border:0;flex:auto;width:100%;min-height:0;transition:opacity .5s cubic-bezier(.22,1,.36,1),transform .5s cubic-bezier(.22,1,.36,1);display:block;transform:translateY(8px)}.project-frame.is-ready{opacity:1;transform:translateY(0)}@keyframes projectExpand{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.top{width:auto;padding:20px 24px 8px}.landing{text-align:center;grid-template-columns:1fr;gap:20px}.intro{text-align:center}.intro h1{font-size:28px}.projects-grid{grid-template-columns:1fr}.project-cycle-nav{width:auto;margin:0;left:24px;right:24px;transform:none}.top-section-minimized .top{padding-bottom:40px}}@media (prefers-reduced-motion:reduce){.project-frame{opacity:1;transition:none;transform:none}}
