:root{--bg-primary: #F3F4F6;--bg-secondary: #FFFFFF;--border: #D1D5DB;--text-primary: #1A1A1A;--text-secondary: #595959;--accent-color: #D32F2F;--accent-hover: #B71C1C;--link-color: #1D4ED8;--link-hover: #1E3A8A;--font-heading: 'Montserrat', system-ui, -apple-system, sans-serif;--font-body: 'Lora', Georgia, serif;--heading-case: none;--space-sm: 0.5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 4rem;--space-xxl: 8rem;--container-width: 1000px;--container-width-narrow: 800px}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);line-height:1.8;font-size:1.125rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);font-weight:700;line-height:1.2;letter-spacing:-0.02em;text-transform:var(--heading-case)}h1{font-size:clamp(2rem, 9vw, 3.5rem);margin-bottom:var(--space-md);overflow-wrap:break-word}h2{font-size:2.5rem;margin-bottom:var(--space-lg);text-align:center}h3{font-size:1.5rem;margin-bottom:var(--space-sm)}h4{font-size:1.25rem;margin-bottom:var(--space-sm)}p{color:var(--text-secondary);margin-bottom:var(--space-lg)}ul,ol{color:var(--text-secondary);margin-bottom:var(--space-lg);padding-left:1.5rem}li+li{margin-top:var(--space-sm)}a{color:var(--link-color);text-decoration:underline;text-underline-offset:0.15em}a:hover{color:var(--link-hover)}img{display:block;max-width:100%;height:auto}code,pre{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:0.9em}pre{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;padding:var(--space-md);margin-bottom:var(--space-lg);background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary)}pre code{font-size:1em}.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--text-primary);color:#FFFFFF;padding:0.75rem 1rem;font-family:var(--font-heading);font-weight:600}.skip-link:focus{left:1rem;top:1rem}a:focus-visible,button:focus-visible,iframe:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--text-primary);outline-offset:2px;box-shadow:0 0 0 5px #FFFFFF}#main-content:focus{outline:none;box-shadow:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}}.inner{max-width:var(--container-width);margin:0 auto;padding:0 var(--space-lg)}.inner-narrow{max-width:var(--container-width-narrow);margin:0 auto}.site-main{min-height:calc(100vh - 200px);padding-top:var(--space-xl);padding-bottom:var(--space-xxl)}.site-header{padding:var(--space-xl) 0}.site-header__inner{display:flex;justify-content:space-between;align-items:center}.site-logo{display:inline-block;background-color:var(--accent-color);color:#FFFFFF;font-family:var(--font-heading);font-weight:700;font-size:1.5rem;padding:8px 16px;text-decoration:none;letter-spacing:-0.02em}.site-logo:hover{background-color:var(--accent-hover);color:#FFFFFF}.site-nav{display:flex;flex-wrap:wrap;gap:var(--space-lg);list-style:none;margin:0;padding:0}.site-nav li+li{margin-top:0}.site-nav a{color:var(--text-secondary);font-family:var(--font-heading);font-weight:600;font-size:1.1rem;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--text-primary);text-decoration:underline;text-underline-offset:0.3em}.site-nav--center{justify-content:center}.site-footer{padding:var(--space-xl) 0}.footer-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.footer-heading{margin-bottom:var(--space-xl)}@media (max-width: 480px){.site-header__inner{flex-wrap:wrap;justify-content:center;gap:var(--space-md)}.inner{padding:0 var(--space-md)}}.hero-section{padding:var(--space-xl) 0 6rem;max-width:600px}.hero-body{font-size:1.25rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 400px), 1fr));gap:4rem 2rem;margin:var(--space-xl) 0 0;padding:0;list-style:none}.projects-grid>li+li{margin-top:0}.project-card{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}.project-card:hover{color:inherit}.project-card:hover .project-card__title{text-decoration:underline;color:var(--link-color)}.project-card:hover .project-thumb img{transform:scale(1.02)}.project-thumb{display:block;width:100%;aspect-ratio:4 / 3;margin-bottom:var(--space-lg);overflow:hidden;border:1px solid var(--border)}.project-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}.project-card__title{font-family:var(--font-heading);font-weight:700;font-size:1.5rem;line-height:1.2;text-align:center;color:var(--text-primary);margin-bottom:var(--space-sm);text-transform:var(--heading-case)}.project-card__text{display:block;text-align:center;color:var(--text-secondary)}.project-card--soon{cursor:default}.project-card--soon:hover .project-card__title{text-decoration:none;color:var(--text-primary)}.project-card--soon:hover .project-thumb img{transform:none}.project{max-width:var(--container-width);margin:0 auto}.project__header,.project__body>p,.project__body>h2,.project__body>h3,.project__body>h4,.project__body>ul,.project__body>ol,.project__body>.figure{max-width:var(--container-width-narrow);margin-left:auto;margin-right:auto}.project__header{text-align:center;margin-bottom:var(--space-lg)}.project__title{margin-bottom:var(--space-md)}.project__summary{font-size:1.25rem;font-style:italic;margin-bottom:0}.project__hero{margin:0 0 var(--space-xl)}.project__hero img{width:100%;border:1px solid var(--border)}.project__facts{display:grid;grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));gap:var(--space-lg);margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border)}.project__fact dt{font-family:var(--font-heading);font-weight:700;color:var(--text-primary)}.project__fact dd{color:var(--text-secondary)}.project__body h2{text-align:left;font-size:2rem;margin-top:var(--space-xl);margin-bottom:var(--space-md)}.project__body h3{text-align:left;margin-top:var(--space-lg)}.figure,.embed{margin:var(--space-xl) 0}.figure img{margin:0 auto;border:1px solid var(--border)}.figure figcaption,.embed figcaption{margin-top:var(--space-sm);font-size:0.95rem;font-style:italic;text-align:center;color:var(--text-secondary)}.embed__frame{position:relative;aspect-ratio:16 / 9;background:var(--bg-secondary)}.embed__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}@media (max-width: 480px){.embed__frame{aspect-ratio:4 / 5}}.related-projects{margin-top:var(--space-xxl)}.project__overview{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:var(--space-lg);margin-bottom:var(--space-xl)}.project__overview h2{font-size:1.5rem;text-align:left;margin-bottom:var(--space-sm)}.project__overview p{font-size:1rem;line-height:1.6;margin-bottom:0}.project__hero--portrait img{width:auto;max-height:640px;margin:0 auto}.stats{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:var(--space-lg);list-style:none;padding:0;margin:var(--space-xl) auto;text-align:center}.stats>li+li{margin-top:0}.stat__value{display:block;font-family:var(--font-heading);font-weight:700;font-size:clamp(2.5rem, 8vw, 4rem);line-height:1.1;color:var(--text-primary)}.stat__label{display:block;font-family:var(--font-heading);font-weight:600;color:var(--text-secondary)}.slides{list-style:none;padding:0;margin:var(--space-xl) 0}.slides>li+li{margin-top:var(--space-xl)}.slides figure{margin:0}.slides img{width:100%;border:1px solid var(--border)}.slides figcaption{margin-top:var(--space-sm);text-align:center;font-size:0.95rem;color:var(--text-secondary)}.slide-count{display:block;font-family:var(--font-heading);font-weight:600;color:var(--text-primary)}.project__body>.stats,.project__body>.slides{max-width:var(--container-width-narrow)}.project__body>.slides{margin-left:auto;margin-right:auto}.project__body .stats{max-width:var(--container-width)}.about-layout{display:flex;gap:var(--space-xl);align-items:flex-start}.about-image{flex:0 0 350px}.about-image img{width:100%;height:auto;box-shadow:0 4px 20px rgba(0,0,0,0.1)}.about-content{flex:1}.about-content h1{font-size:2.5rem;margin-bottom:var(--space-lg)}@media (max-width: 768px){.about-layout{flex-direction:column}.about-image{flex:0 0 auto;width:100%;max-width:350px;margin-bottom:var(--space-lg)}}.role-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:var(--space-lg);list-style:none;padding:0;margin:var(--space-xl) 0}.role-grid>li+li{margin-top:0}.role-card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:8px;margin-bottom:var(--space-md);box-shadow:0 4px 12px rgba(0,0,0,0.05)}.role-card h2{font-size:1.25rem;margin-bottom:var(--space-sm);text-align:left}.role-card p{font-size:1rem;line-height:1.6;margin-bottom:0}.about-hobbies{margin:var(--space-xl) auto;max-width:var(--container-width-narrow)}.about-hobbies h2{text-align:left;font-size:2rem}.quotes{list-style:none;padding:0;margin:var(--space-xl) auto;max-width:var(--container-width-narrow)}.quotes>li{padding:var(--space-lg) 0;border-top:1px solid var(--border)}.quotes>li+li{margin-top:0}.quotes>li:last-child{border-bottom:1px solid var(--border)}.quote{margin:0;text-align:center}.quote blockquote{margin:0}.quote blockquote p{font-family:var(--font-heading);font-weight:500;font-size:1.5rem;line-height:1.4;color:var(--text-primary);margin-bottom:var(--space-md)}.quote figcaption{font-size:1rem;color:var(--text-secondary)}@media (max-width: 480px){.quote blockquote p{font-size:1.25rem}}.cert-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:var(--space-lg);list-style:none;padding:0;margin:0 0 var(--space-xl)}.cert-grid>li+li{margin-top:0}.cert-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-lg);height:100%;background:var(--bg-secondary);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.05);transition:transform 0.2s ease, box-shadow 0.2s ease;text-decoration:none;color:var(--text-primary)}.cert-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.1);color:var(--text-primary)}.cert-card img{height:60px;width:auto;max-width:100%;object-fit:contain;margin-bottom:var(--space-md)}.cert-title{display:block;font-family:var(--font-heading);font-weight:600;font-size:1.1rem;margin-bottom:var(--space-sm)}.cert-link-text{font-size:0.9rem;font-weight:600;color:var(--link-color);text-decoration:underline;text-underline-offset:0.15em}
