@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#fff;--color-text:#1a1a1a;--color-muted:#666;--color-border:#e0e0e0;--color-text-body:#333;--color-overlay-bg:#000c;--color-background-alt:#f5f4f1;--color-text-primary:#1a1a1a;--color-text-secondary:#666;--color-text-muted:#999;--color-surface:#fff;--color-border-light:#e0e0e0;--color-accent:#4a235a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--text-xs:.75rem;--text-sm:.85rem;--text-base:1rem;--text-lg:1.2rem;--text-xl:1.5rem;--font-regular:400;--font-medium:500;--font-semibold:600;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--max-width:60rem;--nav-height:5.625rem;--col-left:11rem;--col-gap:3rem;--radius-sm:4px;--radius-md:5px;--radius-full:9999px;--z-nav:100;--z-overlay:1000;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--hover-opacity:.6}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);line-height:1.6rem}a{color:inherit;text-decoration:none}header{z-index:var(--z-nav);background-color:var(--color-bg);height:var(--nav-height);position:fixed;top:0;left:0;right:0}nav{max-width:var(--max-width);padding:0 var(--space-8);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.nav-logo{font-size:var(--text-lg);font-weight:var(--font-regular);letter-spacing:-.01em}.nav-logo:hover{opacity:var(--hover-opacity)}.nav-links{gap:var(--space-4);align-items:center;list-style:none;display:flex}.nav-links a{font-size:var(--text-lg);font-weight:var(--font-regular);color:var(--color-muted);transition:color var(--transition-base), opacity var(--transition-base)}.nav-links a:hover{opacity:var(--hover-opacity);text-underline-offset:3px;text-decoration:underline}.nav-links a.active{color:var(--color-text);text-underline-offset:3px;text-decoration:underline}.octo-button{border-radius:var(--radius-md);width:50px;height:50px;transition:transform var(--transition-base);background:0 0;border:none;padding:0;overflow:visible;transform:translate(15px,10px)}.octo-skeleton{border-radius:50%;width:50px;height:50px}.octo-overlay{z-index:var(--z-overlay);background-color:var(--color-overlay-bg);cursor:pointer;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.octo-fullscreen{cursor:default;width:100%;max-width:400px}main{max-width:var(--max-width);padding:calc(var(--nav-height) + var(--space-10)) var(--space-8) var(--space-24);margin:0 auto}.home-bio{max-width:42.5rem}.home-bio p{font-size:var(--text-base);margin-bottom:1.75rem;line-height:1.75rem}.home-bio p:last-of-type{margin-bottom:0}.home-bio a{font-weight:var(--font-regular);text-underline-offset:3px;transition:opacity var(--transition-base);text-decoration:underline}.home-bio a:hover{opacity:var(--hover-opacity)}.entry-title a{font-weight:var(--font-regular);transition:opacity var(--transition-base);text-decoration:none}.entry-title a:hover{text-underline-offset:3px;opacity:var(--hover-opacity);text-decoration:underline}.contact-line{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.social-icon{color:var(--color-muted);transition:transform var(--transition-base), opacity var(--transition-base);display:inline-flex}.social-icon:hover{opacity:var(--hover-opacity);transform:scale(1.2)}.section-heading{align-items:center;gap:var(--space-2);display:flex}.cv-download{color:var(--color-muted);transition:opacity var(--transition-base);display:inline-flex}.cv-download:hover{opacity:var(--hover-opacity)}.ai-blurb{border-radius:var(--radius-md);margin-left:calc(-1 * var(--space-4));margin-right:calc(-1 * var(--space-4));padding:.3rem var(--space-4);outline:1px dashed gray}section{margin-bottom:var(--space-16)}section:last-child{margin-bottom:0}section>h2{font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-8);padding-bottom:var(--space-3)}.experience-entry,.list-entry{grid-template-columns:var(--col-left) 1fr;gap:0 var(--col-gap);display:grid}.experience-entry.single-col{display:block}.experience-entry{margin-bottom:var(--space-10)}.experience-entry:last-child{margin-bottom:0}.list-entry{line-height:var(--space-6);margin-bottom:.85rem}.list-entry:last-child{margin-bottom:0}.entry-meta{padding-top:.1rem}.entry-date,.entry-company,.list-date{font-size:var(--text-base);color:var(--color-muted)}.entry-date{line-height:var(--space-6);white-space:nowrap}.entry-company{margin-top:.15rem}.list-date{padding-top:.1rem}.entry-title{font-size:var(--text-lg);font-weight:var(--font-medium);align-items:baseline;gap:.4rem;margin-bottom:.6rem;line-height:1.3rem;display:flex}.entry-bullets{padding:0;list-style:none}.entry-bullets li,.entry-description{font-size:var(--text-base);color:var(--color-text-body);line-height:1.65rem}.entry-bullets li{margin-bottom:var(--space-2)}.entry-description{margin-top:.4rem}.entry-roles{margin-bottom:.5rem;list-style:none}.entry-roles li{font-size:var(--text-sm);color:var(--color-muted);line-height:1.7rem;font-weight:var(--font-medium)}.entry-roles .role-title{color:var(--color-text)}.list-content .sub{color:var(--color-muted);font-size:.8rem;font-weight:var(--font-medium)}.project-links{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.project-links a{font-size:var(--text-sm);color:var(--color-muted);transition:opacity var(--transition-base);text-decoration:none}.project-links a:hover{text-underline-offset:3px;opacity:var(--hover-opacity);text-decoration:underline}.apple-icon{vertical-align:middle;color:var(--color-muted);margin-right:4px;display:inline-block}.animation-grid{gap:var(--space-8);grid-template-columns:1fr;display:grid}.animation-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.animation-card-content{aspect-ratio:4/3;justify-content:center;align-items:center;display:flex;overflow:hidden}.animation-card-content svg{width:100%;height:100%}.animation-card-label{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-muted);border-top:1px solid var(--color-border)}.tv-page{align-items:center;gap:var(--space-8);flex-direction:column;display:flex}.tv-container{width:100%;max-width:600px}.back-link{margin-bottom:var(--space-8);font-size:var(--text-sm);color:var(--color-muted);text-underline-offset:3px;transition:opacity var(--transition-base);text-decoration:underline;display:inline-block}.back-link:hover{opacity:var(--hover-opacity)}.not-found{text-align:center;padding:var(--space-16) 0}.not-found h1{font-size:var(--text-xl);font-weight:var(--font-medium);margin-bottom:var(--space-4)}.not-found a{color:var(--color-muted);text-underline-offset:3px;text-decoration:underline}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:1}}.skeleton{background-color:var(--color-border);border-radius:var(--radius-sm);animation:1.5s ease-in-out infinite skeleton-pulse}.skeleton-line{height:var(--space-4);margin-bottom:var(--space-3);display:block}.page-skeleton{gap:var(--space-2);padding-top:var(--space-4);flex-direction:column;display:flex}@media (width>=43.75em){.animation-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=64em){.animation-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=43.75em){main{padding-top:calc(var(--nav-height))}.experience-entry,.list-entry{gap:var(--space-1);grid-template-columns:1fr}.entry-meta{gap:var(--space-2);align-items:baseline;display:flex}.entry-company:before{content:"·";margin-right:var(--space-2)}}
