@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700&display=swap";@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}.cy-root{--paper:#e7e9e2;--surface:#fafaf7;--ink:#171c1a;--muted:#6e7671;--rule:#c7ccc2;--accent:#1f5f52;--signal:#9a6b00;--display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--body:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;padding:0 5vw;font-size:16px;line-height:1.6}.cy-root *,.cy-root :before,.cy-root :after{box-sizing:border-box}.cy-root h1,.cy-root h2,.cy-root h3,.cy-root p,.cy-root ul,.cy-root dl,.cy-root dd{margin:0}.cy-root ul{padding:0;list-style:none}.cy-root :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.cy-hero{max-width:1080px;margin:0 auto;padding:clamp(3.5rem,9vw,7rem) 0 clamp(2rem,4vw,3rem)}.cy-eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem;font-size:.72rem}.cy-name{font-family:var(--display);letter-spacing:-.035em;max-width:12ch;font-size:clamp(3rem,11vw,7.5rem);font-weight:700;line-height:.88}.cy-name-break{display:inline}@media (width<=640px){.cy-name-break{height:0;display:block}}.cy-contact{flex-wrap:wrap;gap:1.5rem;margin-top:clamp(2rem,4vw,2.75rem);display:flex}.cy-link{font-family:var(--mono);color:var(--accent);border-bottom:1px solid var(--rule);padding-bottom:2px;font-size:.85rem;text-decoration:none;transition:border-color .14s,color .14s}.cy-link:hover{border-bottom-color:var(--accent);color:var(--ink)}.cy-now{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;margin-top:clamp(2.5rem,5vw,4rem);display:grid}.cy-now-cell{background:var(--paper);padding:1rem 1.15rem}.cy-now-cell dt{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;font-size:.68rem}.cy-now-cell dd{font-size:.92rem;font-weight:500;line-height:1.4}.cy-section{border-top:1px solid var(--rule);grid-template-columns:180px 1fr;gap:clamp(1.5rem,4vw,3rem);max-width:1080px;margin:0 auto;padding:clamp(3rem,6vw,5rem) 0;display:grid}.cy-rail-label{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:500;position:sticky;top:2rem}@media (width<=780px){.cy-section{grid-template-columns:1fr;gap:1.25rem}.cy-rail-label{position:static}}.cy-body{min-width:0}.cy-prose{max-width:60ch}.cy-prose p{margin-bottom:1.35rem;font-size:1rem}.cy-prose p:last-child{margin-bottom:0}.cy-prose-lead{font-family:var(--display);letter-spacing:-.02em;font-weight:500;line-height:1.35;margin-bottom:1.75rem!important;font-size:clamp(1.2rem,2.6vw,1.55rem)!important}.cy-resume-line{border-top:1px solid var(--rule);color:var(--muted);padding-top:1.5rem;margin-top:2.25rem!important;font-size:.95rem!important}.cy-projects{gap:2rem;display:grid}.cy-project{border-top:1px solid var(--rule);padding-top:1.5rem}.cy-project:first-child{border-top:0;padding-top:0}.cy-project h3{font-family:var(--display);letter-spacing:-.015em;font-size:1.2rem;font-weight:700}.cy-project-link{color:var(--ink);border-bottom:2px solid var(--accent);text-decoration:none}.cy-project-link:hover{color:var(--accent)}.cy-project-meta{font-family:var(--mono);color:var(--muted);margin-top:.4rem;font-size:.73rem}.cy-project-body{max-width:62ch;margin-top:.8rem;font-size:.95rem}.cy-project-body+.cy-chips,.cy-project-repo{margin-top:1rem}.cy-chips{flex-wrap:wrap;gap:.4rem;display:flex}.cy-chip{font-family:var(--mono);border:1px solid var(--rule);background:var(--surface);padding:.24rem .6rem;font-size:.76rem}.cy-footer{border-top:1px solid var(--rule);max-width:1080px;margin:0 auto;padding:clamp(2.5rem,5vw,4rem) 0 clamp(3rem,6vw,5rem)}.cy-footer-line{font-family:var(--display);letter-spacing:-.02em;max-width:24ch;font-size:clamp(1.15rem,2.6vw,1.6rem);font-weight:500}.cy-footer .cy-contact{margin-top:1.5rem}@media (prefers-reduced-motion:reduce){.cy-root *{transition:none!important;animation:none!important}}
