:root{--radius:0.5rem;--background:oklch(0.98 0.008 85);--foreground:oklch(0.22 0.02 250);--card:oklch(0.995 0.005 85);--card-foreground:oklch(0.22 0.02 250);--primary:oklch(0.28 0.04 250);--primary-foreground:oklch(0.98 0.008 85);--secondary:oklch(0.94 0.015 85);--secondary-foreground:oklch(0.28 0.04 250);--muted:oklch(0.94 0.012 85);--muted-foreground:oklch(0.5 0.02 250);--accent:oklch(0.62 0.14 42);--accent-foreground:oklch(0.98 0.008 85);--border:oklch(0.88 0.015 85);--ring:oklch(0.62 0.14 42);--font-serif:"Fraunces",ui-serif,Georgia,serif;--font-sans:"Inter",ui-sans-serif,system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--border)}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:"ss01","cv11";scroll-behavior:smooth}body{margin:0;line-height:inherit;background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;margin:0;font-family:var(--font-serif);font-feature-settings:"ss01"}ol,p{margin:0}ol{padding:0;list-style:none}a{color:inherit;text-decoration:inherit}img,svg{display:block;vertical-align:middle}.italic{font-style:italic}.app-container{min-height:100vh}.app-header{position:sticky;top:0;z-index:40;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:color-mix(in srgb,var(--background) 70%,transparent);border-bottom-width:1px;border-bottom-color:color-mix(in srgb,var(--border) 60%,transparent)}.header-inner{margin-left:auto;margin-right:auto;max-width:64rem;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.logo{font-family:var(--font-serif);font-size:1.125rem;font-weight:600;letter-spacing:-.025em}.nav-links{display:none;align-items:center;gap:2rem;font-size:.875rem;color:var(--muted-foreground)}@media (min-width:640px){.nav-links{display:flex}}.nav-link{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}.nav-link:hover{color:var(--foreground)}.main-content{margin-left:auto;margin-right:auto;max-width:64rem;padding-left:1.5rem;padding-right:1.5rem}.hero-section{padding-top:6rem;padding-bottom:5rem}@media (min-width:768px){.hero-section{padding-top:9rem;padding-bottom:7rem}}.hero-grid{display:grid;gap:3rem;align-items:center}@media (min-width:768px){.hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.hero-subtitle{font-family:var(--font-mono);font-size:.75rem;line-height:1rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted-foreground);margin-bottom:1.5rem}.hero-title{font-family:var(--font-serif);font-size:3rem;line-height:1.02;letter-spacing:-.025em;font-weight:500}@media (min-width:768px){.hero-title{font-size:3.75rem}}@media (min-width:1024px){.hero-title{font-size:4.5rem}}.highlight-italic{font-style:italic;color:var(--accent)}.hero-description{margin-top:2rem;max-width:42rem;font-size:1.125rem;line-height:1.625;color:var(--muted-foreground)}.highlight-link{color:var(--foreground);text-decoration-line:underline;text-decoration-color:var(--accent);text-underline-offset:4px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}.highlight-link:hover{color:var(--accent)}.hero-actions{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:.75rem}.btn{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}.btn-primary{background-color:var(--primary);color:var(--primary-foreground)}.btn-primary:hover{background-color:var(--accent)}.btn-outline{border-width:1px;border-color:var(--border);padding:calc(.625rem - 1px) calc(1.25rem - 1px)}.btn-outline:hover{border-color:var(--foreground)}.icon-small{width:1rem;height:1rem}.hero-image-container{display:flex;justify-content:center}@media (min-width:768px){.hero-image-container{justify-content:flex-end}}.hero-image{width:12rem;height:12rem;border-radius:9999px;object-fit:cover;border-width:2px;border-color:var(--border);box-shadow:0 1px 2px 0 rgb(0 0 0 / .05)}@media (min-width:768px){.hero-image{width:18rem;height:18rem}}.section{padding-top:5rem;padding-bottom:5rem;border-top-width:1px;border-color:var(--border)}.about-section{display:grid;gap:2.5rem}@media (min-width:768px){.about-section{grid-template-columns:repeat(3,minmax(0,1fr))}}.section-title{font-family:var(--font-serif);font-size:1.875rem;line-height:2.25rem;font-weight:500}@media (min-width:768px){.section-title{font-size:2.25rem;line-height:2.5rem}}.about-content{color:var(--muted-foreground);line-height:1.625}.about-content>*+*{margin-top:1.25rem}@media (min-width:768px){.about-content{grid-column:span 2/span 2}}.skills-section{padding-top:5rem;padding-bottom:5rem}.skills-grid{display:grid;gap:2.5rem}@media (min-width:768px){.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.skills-content{display:grid;gap:2rem}@media (min-width:768px){.skills-content{grid-column:span 2/span 2}}.skill-group-label{font-family:var(--font-mono);font-size:.75rem;line-height:1rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted-foreground);margin-bottom:.75rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{border-radius:9999px;border-width:1px;border-color:var(--border);background-color:var(--card);padding:.25rem .75rem;font-size:.875rem;line-height:1.25rem}.work-section{padding-top:5rem;padding-bottom:5rem}.work-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:3rem}.work-subtitle{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted-foreground)}.projects-list>*+*{margin-top:3.5rem}.project-item{display:grid;gap:1.5rem}@media (min-width:768px){.project-item{grid-template-columns:10rem 1fr;gap:2.5rem}}.project-number{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted-foreground)}.project-period{margin-top:.5rem;font-size:.875rem;line-height:1.25rem;color:var(--muted-foreground)}.project-title{font-family:var(--font-serif);font-size:1.5rem;line-height:2rem;font-weight:500;letter-spacing:-.025em}@media (min-width:768px){.project-title{font-size:1.875rem;line-height:2.25rem}}.project-client-role{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;color:var(--muted-foreground)}.project-description{margin-top:1rem;color:var(--muted-foreground);line-height:1.625;max-width:42rem}.contact-section{padding-top:6rem;padding-bottom:6rem;border-top-width:1px;border-color:var(--border)}.contact-grid{display:grid;gap:2.5rem}@media (min-width:768px){.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.contact-content{grid-column:span 2/span 2}}.contact-text{font-size:1.125rem;line-height:1.625;color:var(--muted-foreground);max-width:36rem}.contact-actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.75rem}.contact-actions .btn{padding:.5rem 1rem}.contact-actions .btn-outline{padding:calc(.5rem - 1px) calc(1rem - 1px)}.app-footer{padding-top:2.5rem;padding-bottom:2.5rem;border-top-width:1px;border-color:var(--border);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.75rem;font-size:.875rem;line-height:1.25rem;color:var(--muted-foreground)}@media (min-width:640px){.app-footer{flex-direction:row;align-items:center}}.footer-location{font-family:var(--font-mono);font-size:.75rem;line-height:1rem;text-transform:uppercase;letter-spacing:.2em}