@import "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--surface-primary:#fafafa;--surface-alt:#f0efed;--surface-elevated:#fff;--text-primary:#1a1a1a;--text-secondary:#6b6b6b;--text-tertiary:#999;--accent:#2d2d2d;--accent-subtle:#e8e6e3;--highlight:#c8553d;--highlight-light:#c8553d1a;--font-display:"Instrument Serif", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-display:4rem;--text-h1:2.5rem;--text-h2:1.75rem;--text-h3:1.25rem;--text-body:1rem;--text-small:.8125rem;--text-label:.6875rem;--leading-display:1.05;--leading-h1:1.15;--leading-h2:1.2;--leading-h3:1.3;--leading-body:1.6;--leading-small:1.5;--leading-label:1.4;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--space-section:7.5rem;--max-width:1200px;--container-width:1200px;--gutter:1.5rem;--container-gutter:2rem;--header-height:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-snappy:cubic-bezier(.87, .05, .02, .97);--duration-fast:.2s;--duration-normal:.35s;--duration-slow:.6s;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-hover:0 8px 24px #00000014;--z-sticky:100;--z-modal:1000}@media (width<=1024px){:root{--text-display:2.75rem;--text-h1:2rem;--text-h2:1.5rem;--space-section:5rem;--container-gutter:1.5rem}}@media (width<=640px){:root{--text-display:2.25rem;--text-h1:1.75rem;--text-h2:1.25rem;--text-h3:1.125rem;--space-section:3.5rem;--gutter:1.25rem;--container-gutter:1rem}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);color:var(--text-primary);background-color:var(--surface-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;text-rendering:optimizelegibility;font-size:16px;line-height:1.6}body{background-color:var(--surface-primary);min-height:100vh;color:var(--text-primary);overflow-x:hidden}img,picture,video,canvas,svg{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}h1,h2,h3,h4,.font-heading{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text-primary);font-weight:400}.text-display{font-family:var(--font-heading);font-size:var(--font-size-display);line-height:var(--line-height-display);letter-spacing:-.03em;font-weight:400}h1,.text-h1{font-size:var(--font-size-h1);line-height:var(--line-height-h1)}h2,.text-h2{font-size:var(--font-size-h2);line-height:var(--line-height-h2)}h3,.text-h3{font-family:var(--font-body);font-size:var(--font-size-h3);line-height:var(--line-height-h3);letter-spacing:-.01em;font-weight:500}h4,.text-h4{font-family:var(--font-body);font-size:1.1rem;line-height:var(--line-height-h3);font-weight:600}p,.text-body{font-family:var(--font-body);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-small{font-size:var(--font-size-small);line-height:var(--line-height-small)}.text-label{font-family:var(--font-body);font-size:var(--font-size-label);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-uppercase);text-transform:uppercase;color:var(--text-secondary);font-weight:600}.text-code{font-family:var(--font-mono);font-size:.875rem}.container{width:100%;max-width:var(--container-width,1200px);padding-left:var(--container-gutter,2rem);padding-right:var(--container-gutter,2rem);margin-left:auto;margin-right:auto}@media (width<=1024px){.container{padding-left:var(--container-gutter,1.5rem);padding-right:var(--container-gutter,1.5rem)}}@media (width<=640px){.container{padding-left:var(--container-gutter,1rem);padding-right:var(--container-gutter,1rem)}}.section{padding-top:var(--space-3xl);padding-bottom:var(--space-3xl)}.section-alt{background-color:var(--surface-alt)}.section-bordered{border-bottom:1px solid var(--border-subtle)}.page-transition{animation:fadeIn .4s var(--ease-snappy) forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.link-editorial{color:var(--text-primary);transition:color var(--transition-fast);align-items:center;gap:.35rem;font-weight:500;display:inline-flex;position:relative}.link-editorial:after{content:"";background-color:var(--text-primary);transform-origin:100%;width:100%;height:1px;transition:transform var(--transition-medium);position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.link-editorial:hover:after{transform-origin:0;transform:scaleX(1)}:focus-visible{outline:2px solid var(--highlight);outline-offset:3px;border-radius:var(--radius-sm)}.btn-primary,.btn-secondary,.not-found-btn{font-family:var(--font-body);border-radius:var(--radius-full,9999px);background-color:var(--surface-alt);color:var(--text-primary);isolation:isolate;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.6rem;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-flex;position:relative;overflow:hidden;transition:color .15s var(--ease-out,ease-out) 0s, transform var(--duration-fast,.2s) var(--ease-out,ease-out), box-shadow var(--duration-fast,.2s) var(--ease-out,ease-out)!important}.btn-primary svg,.btn-secondary svg,.not-found-btn svg{transition:color .15s var(--ease-out,ease-out) 0s, stroke .15s var(--ease-out,ease-out) 0s, transform var(--duration-fast,.2s) var(--ease-out,ease-out);flex-shrink:0}.btn-primary:before,.btn-secondary:before,.not-found-btn:before{content:"";background-color:var(--text-primary);border-radius:inherit;z-index:-1;pointer-events:none;width:100%;height:100%;transition:transform .28s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0;transform:translate(-101%)}.btn-primary:hover:before,.btn-secondary:hover:before,.not-found-btn:hover:before{transform:translate(0)}.btn-primary:hover,.btn-secondary:hover,.not-found-btn:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 4px 14px #00000014;color:var(--surface-primary)!important;transition:color .14s var(--ease-out,ease-out) 70ms, transform var(--duration-fast,.2s) var(--ease-out,ease-out), box-shadow var(--duration-fast,.2s) var(--ease-out,ease-out)!important}.btn-primary:hover svg,.btn-secondary:hover svg,.not-found-btn:hover svg{color:var(--surface-primary);stroke:var(--surface-primary);transition:color .14s var(--ease-out,ease-out) 70ms, stroke .14s var(--ease-out,ease-out) 70ms, transform var(--duration-fast,.2s) var(--ease-out,ease-out)}.btn-primary:active,.btn-secondary:active,.not-found-btn:active{transform:translateY(0)scale(.98);box-shadow:0 1px 4px #0000000a}.contact-btn,.project-link-btn,button:not(.mobile-toggle):not(.nav-link){transition:transform var(--duration-fast,.2s) var(--ease-out,ease-out), background-color var(--duration-fast,.2s) var(--ease-out,ease-out), box-shadow var(--duration-fast,.2s) var(--ease-out,ease-out), opacity var(--duration-fast,.2s) var(--ease-out,ease-out)!important}.contact-btn:hover,.project-link-btn:hover,button:not(.mobile-toggle):not(.nav-link):hover{transform:translateY(-2px)scale(1.02);box-shadow:0 4px 14px #00000014}.contact-btn:active,.project-link-btn:active,button:not(.mobile-toggle):not(.nav-link):active{transform:translateY(0)scale(.98);box-shadow:0 1px 4px #0000000a}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.btn-primary:before,.btn-secondary:before,.not-found-btn:before{display:none!important}.btn-primary:hover,.btn-secondary:hover,.not-found-btn:hover{background-color:var(--text-primary)!important;color:var(--surface-primary)!important;transform:none!important}}.site-header{z-index:var(--z-sticky,100);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);transition:background-color var(--transition-fast);background-color:#fafafae0;position:sticky;top:0}.header-container{height:var(--header-height);justify-content:space-between;align-items:center;display:flex}.header-brand{align-items:center;gap:var(--space-xs);color:var(--text-primary);text-decoration:none;display:flex}.brand-name{font-family:var(--font-heading);letter-spacing:-.01em;font-size:1.35rem;font-weight:400}.brand-dot{background-color:var(--highlight);border-radius:50%;width:6px;height:6px;display:inline-block}.brand-role{font-size:var(--font-size-small);color:var(--text-tertiary);margin-left:var(--space-xs);display:none}@media (width>=992px){.brand-role{display:inline}}.header-nav{display:none}@media (width>=768px){.header-nav{align-items:center;gap:var(--space-lg);display:flex;position:relative}}.nav-link{font-family:var(--font-body);color:var(--text-secondary);transition:color var(--transition-fast);padding:.25rem 0;font-size:.9375rem;font-weight:400;position:relative}.nav-link:hover{color:var(--text-primary)}.nav-link.active{color:var(--text-primary);font-weight:500}.nav-indicator{background-color:var(--text-primary);height:2px;transition:transform var(--duration-fast,.2s) var(--ease-out,cubic-bezier(.16, 1, .3, 1)), width var(--duration-fast,.2s) var(--ease-out,cubic-bezier(.16, 1, .3, 1)), opacity var(--duration-fast,.2s) ease-out;pointer-events:none;border-radius:1px;position:absolute;bottom:-4px;left:0}@media (prefers-reduced-motion:reduce){.nav-indicator{transition:none!important}}.nav-item-dropdown{align-items:center;display:inline-flex;position:relative}.nav-item-dropdown .nav-link{align-items:center;gap:.35rem;display:inline-flex}.dropdown-arrow{transition:transform var(--duration-fast) var(--ease-out);opacity:.6}.nav-item-dropdown:hover .dropdown-arrow{opacity:1;transform:rotate(180deg)}.nav-dropdown-menu{background-color:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:210px;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out), visibility var(--duration-fast);z-index:var(--z-modal,1000);margin-top:.5rem;padding:.375rem 0;position:absolute;top:100%;left:50%;transform:translate(-50%)translateY(-4px)}.nav-dropdown-menu:before{content:"";height:12px;position:absolute;top:-12px;left:0;right:0}.nav-item-dropdown:hover .nav-dropdown-menu,.nav-item-dropdown:focus-within .nav-dropdown-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)translateY(0)}.dropdown-item{font-family:var(--font-body);color:var(--text-secondary);transition:color var(--duration-fast), background-color var(--duration-fast);justify-content:space-between;align-items:center;padding:.45rem 1rem;font-size:.875rem;font-weight:400;text-decoration:none;display:flex}.dropdown-item:hover{color:var(--text-primary);background-color:var(--surface-alt)}.dropdown-item.active{color:var(--highlight);font-weight:500}.header-actions{align-items:center;gap:var(--space-md);display:flex}.contact-btn{color:var(--surface-primary);background-color:var(--text-primary);border-radius:var(--radius-full);transition:opacity var(--transition-fast), transform var(--transition-fast);padding:.45rem 1rem;font-size:.875rem;font-weight:500;display:none}.contact-btn:hover{opacity:.9;transform:translateY(-1px)}@media (width>=640px){.contact-btn{align-items:center;gap:.35rem;display:inline-flex}}.mobile-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;padding:4px;display:flex}@media (width>=768px){.mobile-toggle{display:none}}.toggle-bar{background-color:var(--text-primary);width:100%;height:2px;transition:transform var(--transition-fast), opacity var(--transition-fast)}.mobile-toggle.open .toggle-bar:first-child{transform:translateY(7px)rotate(45deg)}.mobile-toggle.open .toggle-bar:nth-child(2){opacity:0}.mobile-toggle.open .toggle-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-drawer{top:var(--header-height);width:100%;height:calc(100vh - var(--header-height));height:calc(100dvh - var(--header-height));padding:var(--space-xl) var(--container-gutter);z-index:var(--z-modal,1000);opacity:0;pointer-events:none;transition:transform .3s var(--ease-snappy), opacity .3s ease;background-color:#fafafa;flex-direction:column;justify-content:space-between;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(-100%)}.mobile-drawer.open{opacity:1;pointer-events:auto;background-color:#fafafa;transform:translateY(0)}.mobile-nav-list{gap:var(--space-lg);flex-direction:column;display:flex}.mobile-nav-link{font-family:var(--font-heading);color:var(--text-primary);font-size:2rem;display:block}.mobile-nav-link.active{color:var(--highlight)}.mobile-drawer-footer{padding-top:var(--space-xl);border-top:1px solid var(--border-subtle)}.mobile-email{color:var(--text-secondary);margin-bottom:var(--space-xs);font-size:1rem;display:block}.mobile-location{color:var(--text-tertiary);font-size:.875rem}.site-footer{background-color:var(--surface-alt);border-top:1px solid var(--border-subtle);padding-top:var(--space-3xl);padding-bottom:var(--space-2xl);margin-top:var(--space-3xl)}.footer-top{gap:var(--space-2xl);margin-bottom:var(--space-2xl);grid-template-columns:1fr;display:grid}@media (width>=768px){.footer-top{grid-template-columns:2fr 1fr 1fr}}.footer-brand-title{font-family:var(--font-heading);margin-bottom:var(--space-xs);color:var(--text-primary);font-size:2rem;font-weight:400}.footer-brand-desc{font-size:var(--font-size-body);color:var(--text-secondary);max-width:480px;line-height:var(--line-height-body)}.footer-heading{font-family:var(--font-body);font-size:var(--font-size-label);letter-spacing:var(--letter-spacing-uppercase);text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--space-md);font-weight:600}.footer-links-list{gap:var(--space-xs);flex-direction:column;display:flex}.footer-link{color:var(--text-primary);transition:color var(--transition-fast);align-items:center;gap:.35rem;font-size:.9375rem;display:inline-flex}.footer-link:hover{color:var(--highlight)}.footer-bottom{padding-top:var(--space-lg);border-top:1px solid var(--border-subtle);gap:var(--space-sm);font-size:var(--font-size-small);color:var(--text-tertiary);flex-direction:column;display:flex}@media (width>=640px){.footer-bottom{flex-direction:row;justify-content:space-between;align-items:center}}.footer-meta{gap:var(--space-md);display:flex}.section-header{margin-bottom:var(--space-2xl)}.section-header-label{align-items:center;gap:var(--space-xs);font-family:var(--font-body);font-size:var(--font-size-label);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-uppercase);text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--space-xs);font-weight:600;display:inline-flex}.section-header-title{font-family:var(--font-heading);font-size:var(--font-size-h1);line-height:var(--line-height-h1);color:var(--text-primary);font-weight:400}.section-header-description{margin-top:var(--space-sm);max-width:640px;font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--text-secondary)}.project-card{background-color:var(--surface-primary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:transform var(--transition-medium), box-shadow var(--transition-medium), border-color var(--transition-medium);flex-direction:column;height:100%;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-md);border-color:#0000001f;transform:translateY(-4px)}.project-card-media{background-color:var(--surface-alt);justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.project-card-media.aspect-16-9{aspect-ratio:16/9}.project-card-media.aspect-4-3{aspect-ratio:4/3}.project-card-media.aspect-1-1{aspect-ratio:1}.project-card-media.aspect-3-4{aspect-ratio:3/4}.project-card-media.aspect-9-16{aspect-ratio:9/16}.project-media-placeholder{justify-content:center;align-items:center;gap:var(--space-xs);color:var(--text-tertiary);width:100%;height:100%;padding:var(--space-lg);text-align:center;transition:transform var(--transition-medium);background:linear-gradient(135deg,#f0efed 0%,#e5e3e0 100%);flex-direction:column;display:flex}.project-card:hover .project-media-placeholder{transform:scale(1.02)}.project-placeholder-icon{width:36px;height:36px;stroke:var(--text-tertiary);opacity:.7}.project-placeholder-label{font-family:var(--font-body);font-size:var(--font-size-label);letter-spacing:var(--letter-spacing-uppercase);text-transform:uppercase;color:var(--text-secondary)}.project-award-badge{top:var(--space-xs);right:var(--space-xs);background-color:var(--text-primary);color:var(--surface-primary);border-radius:var(--radius-full);z-index:2;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex;position:absolute}.project-award-icon{flex-shrink:0;width:12px;height:12px}.project-card-body{padding:var(--space-lg);flex-direction:column;flex-grow:1;justify-content:space-between;display:flex}.project-card-header{margin-bottom:var(--space-sm)}.project-card-category{font-family:var(--font-body);font-size:var(--font-size-label);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-uppercase);text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--space-2xs);font-weight:600;display:block}.project-card-title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:var(--space-2xs);font-size:1.5rem;font-weight:400;line-height:1.25}.project-card-subtitle{color:var(--text-secondary);margin-bottom:var(--space-xs);font-size:.875rem}.project-card-desc{color:var(--text-secondary);margin-bottom:var(--space-md);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9375rem;line-height:1.55;display:-webkit-box;overflow:hidden}.project-tech-tags{gap:var(--space-2xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.tech-tag{background-color:var(--surface-alt);color:var(--text-secondary);border-radius:var(--radius-sm);padding:.15rem .5rem;font-size:.75rem;font-weight:500}.project-card-footer{padding-top:var(--space-sm);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.project-date{font-size:var(--font-size-small);color:var(--text-tertiary)}.project-links{align-items:center;gap:var(--space-xs);display:flex}.project-link-btn{color:var(--text-primary);transition:color var(--transition-fast);align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500;display:inline-flex}.project-link-btn:hover{color:var(--highlight)}.cert-item{padding:var(--space-xl);background-color:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}.cert-item:hover{box-shadow:var(--shadow-sm);border-color:#00000026;transform:translateY(-2px)}.cert-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-xs);display:flex}.cert-title{font-family:var(--font-heading);color:var(--text-primary);font-size:1.5rem;font-weight:400}.cert-date{background-color:var(--surface-alt);color:var(--text-secondary);border-radius:var(--radius-full);white-space:nowrap;padding:.2rem .6rem;font-size:.8125rem;font-weight:500}.cert-issuer{color:var(--text-secondary);margin-bottom:var(--space-md);align-items:center;gap:var(--space-xs);font-size:.9375rem;display:flex}.cert-issuer-badge{color:var(--text-primary);font-weight:600}.cert-skills-list{gap:var(--space-xs);flex-wrap:wrap;margin-top:auto;display:flex}.cert-skill-chip{background-color:var(--surface-alt);color:var(--text-secondary);border-radius:var(--radius-sm);padding:.15rem .5rem;font-size:.75rem}.hero-section{padding-top:var(--space-3xl);padding-bottom:var(--space-3xl);border-bottom:1px solid var(--border-subtle)}.hero-badge{align-items:center;gap:var(--space-xs);background-color:var(--surface-alt);border-radius:var(--radius-full);color:var(--text-secondary);margin-bottom:var(--space-lg);padding:.35rem .85rem;font-size:.8125rem;font-weight:500;display:inline-flex}.hero-badge-dot{background-color:#10b981;border-radius:50%;width:7px;height:7px}.hero-title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:var(--space-md);max-width:900px;font-size:clamp(2.5rem,6vw,4.25rem);font-weight:400;line-height:1.05}.hero-title-highlight{color:var(--text-primary);font-style:italic}.hero-bio{color:var(--text-secondary);max-width:720px;margin-bottom:var(--space-2xl);font-size:1.1875rem;line-height:1.65}.hero-actions{align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.btn-primary,.btn-secondary{background-color:var(--surface-alt);color:var(--text-primary);border-radius:var(--radius-full);align-items:center;gap:.5rem;padding:.75rem 1.6rem;font-weight:500;display:inline-flex}.skills-grid{gap:var(--space-md);margin-top:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.skill-category-card{padding:var(--space-lg);background-color:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.skill-category-name{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:.875rem;font-weight:600}.skill-items-list{gap:var(--space-xs);flex-wrap:wrap;display:flex}.skill-item-tag{background-color:var(--surface-alt);border-radius:var(--radius-sm);color:var(--text-primary);padding:.2rem .55rem;font-size:.8125rem}.category-filter-nav{align-items:center;gap:var(--space-xs);padding-bottom:var(--space-sm);margin-bottom:var(--space-2xl);scrollbar-width:thin;-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.category-filter-btn{font-family:var(--font-body);border-radius:var(--radius-full);background-color:var(--surface-alt);color:var(--text-secondary);white-space:nowrap;transition:background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);border:1px solid #0000;padding:.5rem 1.15rem;font-size:.875rem;font-weight:500}.category-filter-btn:hover{color:var(--text-primary);background-color:var(--accent-subtle)}.category-filter-btn.active{background-color:var(--text-primary);color:var(--surface-primary);border-color:var(--text-primary)}.category-count{opacity:.75;margin-left:.25rem;font-size:.75rem}.media-gallery-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.gallery-item{border-radius:var(--radius-md);background-color:var(--surface-alt);border:1px solid var(--border-subtle);aspect-ratio:4/3;transition:transform var(--transition-medium), box-shadow var(--transition-medium);position:relative;overflow:hidden}.gallery-item:hover{box-shadow:var(--shadow-md);z-index:2;transform:scale(1.02)}.gallery-placeholder{width:100%;height:100%;padding:var(--space-md);text-align:center;color:var(--text-primary);background:linear-gradient(135deg,#ebe9e6 0%,#dcdace 100%);flex-direction:column;justify-content:center;align-items:center;display:flex}.gallery-item-title{font-family:var(--font-heading);margin-bottom:var(--space-2xs);font-size:1.25rem}.gallery-item-type{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.75rem}.works-page-header{padding-top:var(--space-3xl);padding-bottom:var(--space-xl)}.works-grid-wrapper{margin-top:var(--space-xl);margin-bottom:var(--space-3xl)}.empty-works-state{padding:var(--space-3xl) var(--space-md);text-align:center;background-color:var(--surface-alt);border-radius:var(--radius-md);color:var(--text-secondary)}.cert-page-header{padding-top:var(--space-3xl);padding-bottom:var(--space-xl)}.cert-grid{gap:var(--space-lg);margin-bottom:var(--space-3xl);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.education-section{padding-top:var(--space-2xl);border-top:1px solid var(--border-subtle);margin-top:var(--space-2xl)}.education-cards-grid{gap:var(--space-lg);margin-top:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.edu-card{padding:var(--space-xl);background-color:var(--surface-alt);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.edu-degree{font-family:var(--font-heading);margin-bottom:var(--space-xs);color:var(--text-primary);font-size:1.5rem}.edu-institution{color:var(--text-primary);margin-bottom:var(--space-2xs);font-size:.9375rem;font-weight:600}.edu-dates{color:var(--text-tertiary);margin-bottom:var(--space-sm);font-size:.8125rem}.edu-desc{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.post-card{padding:var(--space-xl);background-color:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:transform var(--transition-medium), border-color var(--transition-medium), box-shadow var(--transition-medium);flex-direction:column;height:100%;display:flex}.post-card:hover{box-shadow:var(--shadow-sm);border-color:#00000026;transform:translateY(-3px)}.post-card-meta{align-items:center;gap:var(--space-sm);color:var(--text-tertiary);margin-bottom:var(--space-xs);font-size:.8125rem;display:flex}.post-card-title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:var(--space-xs);font-size:1.5rem;font-weight:400;line-height:1.3}.post-card-excerpt{color:var(--text-secondary);margin-bottom:var(--space-lg);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9375rem;line-height:1.6;display:-webkit-box;overflow:hidden}.post-card-footer{padding-top:var(--space-md);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.post-card-tags{gap:var(--space-2xs);display:flex}.post-tag{color:var(--text-secondary);background-color:var(--surface-alt);border-radius:var(--radius-sm);padding:.15rem .45rem;font-size:.75rem}.post-read-link{color:var(--text-primary);transition:color var(--transition-fast);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:inline-flex}.post-card:hover .post-read-link{color:var(--highlight)}.blog-page-header{padding-top:var(--space-3xl);padding-bottom:var(--space-xl)}.blog-posts-grid{gap:var(--space-xl);margin-bottom:var(--space-3xl);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.writing-page-header{padding-top:var(--space-3xl);padding-bottom:var(--space-xl)}.writing-list{gap:var(--space-lg);margin-bottom:var(--space-3xl);flex-direction:column;max-width:800px;display:flex}.writing-item{padding:var(--space-xl);background-color:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.writing-item:hover{border-color:#00000026}.writing-item-header{margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.writing-type-badge{text-transform:uppercase;letter-spacing:.05em;background-color:var(--surface-alt);color:var(--text-secondary);border-radius:var(--radius-sm);padding:.2rem .5rem;font-size:.75rem;font-weight:600}.writing-date{color:var(--text-tertiary);font-size:.8125rem}.writing-title{font-family:var(--font-heading);margin-bottom:var(--space-xs);color:var(--text-primary);font-size:1.5rem}.writing-summary{color:var(--text-secondary);font-size:.9375rem;line-height:1.6}.post-detail-header{padding-top:var(--space-3xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-2xl)}.post-detail-meta{align-items:center;gap:var(--space-md);color:var(--text-tertiary);margin-bottom:var(--space-sm);font-size:.875rem;display:flex}.post-detail-title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:var(--space-md);font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.15}.post-detail-content{max-width:720px;color:var(--text-primary);margin-left:auto;margin-right:auto;margin-bottom:var(--space-3xl);font-size:1.0625rem;line-height:1.7}.post-detail-content h1,.post-detail-content h2,.post-detail-content h3{font-family:var(--font-heading);margin-top:2rem;margin-bottom:1rem}.post-detail-content p{margin-bottom:1.25rem}.post-detail-content ul,.post-detail-content ol{margin-bottom:1.25rem;padding-left:1.5rem}.post-detail-content li{margin-bottom:.5rem}.post-detail-content pre{background-color:var(--surface-alt);border-radius:var(--radius-md);font-family:var(--font-mono);margin-bottom:1.5rem;padding:1rem;font-size:.875rem;overflow-x:auto}.post-detail-footer{max-width:720px;padding-top:var(--space-xl);border-top:1px solid var(--border-subtle);margin-left:auto;margin-right:auto}.gallery-page-header{padding-top:var(--space-3xl);padding-bottom:var(--space-xl)}.gallery-track{align-items:flex-start;gap:var(--space-xl);scroll-snap-type:x proximity;cursor:grab;scrollbar-width:none;-ms-overflow-style:none;margin-bottom:var(--space-3xl);-webkit-overflow-scrolling:touch;-webkit-user-select:none;user-select:none;flex-direction:row;display:flex;overflow:auto hidden}.gallery-track::-webkit-scrollbar{display:none}.gallery-slide{scroll-snap-align:start;gap:var(--space-sm);flex-direction:column;flex:none;width:clamp(260px,40vw,560px);margin:0;display:flex}.gallery-slide-img-wrap{aspect-ratio:4/3;background-color:var(--surface-alt);border:1px solid var(--border-subtle);width:100%;overflow:hidden}.gallery-slide-img{object-fit:cover;pointer-events:none;width:100%;height:100%;transition:transform var(--duration-normal) var(--ease-out);display:block}.gallery-slide:hover .gallery-slide-img{transform:scale(1.03)}.gallery-slide-caption{font-family:var(--font-body);font-size:var(--text-small);color:var(--text-secondary);line-height:var(--leading-small);padding:0 2px}.not-found-container{text-align:center;padding-top:var(--space-3xl);padding-bottom:var(--space-3xl);flex-direction:column;justify-content:center;align-items:center;min-height:65vh;display:flex}.not-found-image{width:100%;max-width:400px;height:auto;margin-bottom:var(--space-xl);object-fit:contain}.not-found-title{font-family:var(--font-display,var(--font-heading,serif));color:var(--text-primary);margin-bottom:var(--space-xs);font-size:clamp(2rem,4vw,3rem);font-weight:400}.not-found-text{font-family:var(--font-body);color:var(--text-secondary);max-width:480px;margin-bottom:var(--space-xl);font-size:1.0625rem;line-height:1.6}.not-found-btn{background-color:var(--surface-alt);color:var(--text-primary);font-family:var(--font-body);border-radius:var(--radius-full,9999px);align-items:center;gap:.5rem;padding:.75rem 1.6rem;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-flex}
