*,:before,:after{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.7}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}:root{--color-bg:#faf9f7;--color-bg-subtle:#f5f4f0;--color-surface:#fff;--color-text:#1a1a1a;--color-text-muted:#6b6b6b;--color-accent:#1a1a1a;--color-border:#e5e2dd;--color-inverse:#1a1a1a;--color-inverse-text:#faf9f7;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:6rem;--space-2xl:8rem;--fs-xs:clamp(.75rem, .7rem + .2vw, .875rem);--fs-sm:clamp(.875rem, .8rem + .3vw, 1rem);--fs-base:1rem;--fs-md:clamp(1rem, .95rem + .2vw, 1.125rem);--fs-lg:clamp(1.25rem, 1.1rem + .5vw, 1.5rem);--fs-xl:clamp(2rem, 1.6rem + 1.5vw, 3rem);--fs-2xl:clamp(2.5rem, 2rem + 2vw, 4rem);--fs-3xl:clamp(3.5rem, 2.5rem + 4vw, 6.5rem);--fs-hero:clamp(2.75rem, 12vw, var(--fs-3xl));--max-w:1280px;--max-w-narrow:720px}h1,h2,h3{color:var(--color-text);font-family:Playfair Display,Georgia,Times New Roman,serif;font-weight:400;line-height:1.15}h1{font-size:var(--fs-3xl);letter-spacing:-.02em}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-lg)}p{color:var(--color-text-muted)}.container{width:100%;max-width:var(--max-w);padding:0 var(--space-md);margin:0 auto}@media (width>=768px){.container{padding:0 var(--space-lg)}}.site-header{z-index:10;background-color:var(--color-bg);border-bottom:1px solid #d8d4cc;position:sticky;top:0}.site-header .container{justify-content:space-between;align-items:center;height:72px;display:flex}.logo{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.logo-img{flex-shrink:0;width:44px;height:44px;display:block}.logo-text{letter-spacing:.01em;white-space:nowrap;font-family:Playfair Display,serif;font-size:1.25rem;font-weight:400}@media (width<=639px){.logo{gap:.6rem}.logo-img{width:36px;height:36px}.logo-text{font-size:1.125rem}}.nav-links{align-items:center;gap:var(--space-lg);margin:0;padding:0;list-style:none;display:flex}.nav-links a{font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);padding-bottom:4px;font-weight:400;transition:color .2s;position:relative}.nav-links a:after{content:"";background-color:var(--color-accent);width:0;height:1px;transition:width .3s;position:absolute;bottom:0;left:0}.nav-links a:hover:after{width:100%}.nav-links a:hover{color:var(--color-text)}@media (width>=960px){.nav-links{gap:clamp(2rem,4vw,3rem)}.nav-links a{letter-spacing:.09em;white-space:nowrap;font-size:.8125rem}}.hero{padding:var(--space-xl) 0 var(--space-lg)}.hero h1{max-width:16ch;margin-bottom:var(--space-sm)}.hero h1 em{color:var(--color-accent);font-style:italic}.hero-subtitle{font-size:var(--fs-md);max-width:42ch;line-height:1.6}.section{padding:var(--space-xl) 0}.section-label{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-sm);font-weight:500}.section-heading{margin-bottom:var(--space-lg)}.project-grid{--gap-x:3rem;--gap-y:var(--space-lg);justify-content:center;gap:var(--gap-y) var(--gap-x);flex-wrap:wrap;display:flex}.project-grid--supporting{--gap-x:2.5rem;max-width:min(62rem,88%);margin:0 auto}.project-card{flex:0 0 100%;min-width:0;display:block}@media (width>=640px){.project-card{flex-basis:calc((100% - var(--gap-x)) / 2)}}@media (width>=1024px){.project-card{flex-basis:calc((100% - 2 * var(--gap-x)) / 3)}}.project-card__image{aspect-ratio:4/3;background-color:var(--color-surface);border:1px solid var(--color-border);justify-content:center;align-items:center;transition:border-color .25s;display:flex;overflow:hidden}.project-card--supporting .project-card__image{aspect-ratio:3/2}.project-card:hover .project-card__image{border-color:#b9b5ad}.project-card__image img{object-fit:cover;width:100%;height:100%;display:block}.project-card__image--poster img,.project-card__image--panel img,.project-card__image--mark img,.project-card__image--ui img{object-fit:contain;box-sizing:border-box}.project-card__image--poster img{padding:6%}.project-card__image--panel img{padding:3.5%}.project-card__image--mark img{padding:7%}.project-card__image--ui img{padding:4% 3%}.project-card__image--tall img{flex:none;width:auto;max-width:none;height:94%}.project-card__body{padding-top:1.25rem}.project-card__title{font-family:Playfair Display,serif;font-size:var(--fs-lg);letter-spacing:-.01em;color:var(--color-text);margin-bottom:.4rem;font-weight:400;line-height:1.25}.project-card--supporting .project-card__title{font-size:1.25rem}.project-card__desc{font-size:var(--fs-sm);color:var(--color-text-muted);max-width:44ch;line-height:1.6}.project-card--supporting .project-card__desc{font-size:.875rem}.about-editorial{gap:var(--space-lg);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=960px){.about-editorial{gap:var(--space-xl);grid-template-columns:1fr 380px}}.about-bio p{margin-bottom:var(--space-sm);font-size:var(--fs-md);max-width:56ch;line-height:1.7}.about-actions{align-items:center;gap:var(--space-sm) var(--space-md);margin-top:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.btn{font-family:Inter,system-ui,sans-serif;font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;background-color:#0000;border-radius:3px;align-items:center;gap:.4rem;padding:.75rem 1.5rem;font-weight:500;transition:background-color .2s,color .2s;display:inline-flex}.btn:hover{background-color:var(--color-accent);color:var(--color-inverse-text)}.btn--ghost{border-color:var(--color-border);color:var(--color-text-muted)}.btn--ghost:hover{background-color:var(--color-border);color:var(--color-text)}.text-link{font-size:var(--fs-sm);letter-spacing:.02em;color:var(--color-text-muted);text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:.3em;font-weight:500;transition:color .2s,text-decoration-color .2s}.text-link:hover{color:var(--color-text);text-decoration-color:currentColor}.about-preview{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:4px;overflow:hidden;box-shadow:0 4px 24px #0000000f}.about-preview img{width:100%;height:auto;display:block}.contact-section{text-align:center}.contact-section p{max-width:48ch;margin:0 auto var(--space-md)}.contact-link{font-family:Playfair Display,serif;font-size:var(--fs-lg);color:var(--color-accent);border-bottom:1px solid var(--color-accent);padding-bottom:2px;font-style:italic;transition:color .2s;display:inline-block}.contact-link:hover{color:var(--color-text);border-color:var(--color-text)}.cognito-hint{margin-top:var(--space-xl);text-align:center}.cognito-hint__inner{align-items:center;gap:var(--space-sm);padding:var(--space-md) 0;flex-direction:column;max-width:42ch;margin-left:auto;margin-right:auto;display:flex}.cognito-hint__mark{color:var(--color-border);letter-spacing:.2em;font-size:1.25rem}.cognito-hint__text{font-size:var(--fs-sm);color:var(--color-text-muted);margin:0;font-style:italic;line-height:1.6}.site-footer{padding:var(--space-lg) 0;border-top:1px solid var(--color-border);margin-top:var(--space-xl)}.site-footer p{font-size:var(--fs-xs);text-align:center;color:var(--color-text-muted)}.site-footer a{color:var(--color-text-muted);text-underline-offset:2px;text-decoration:underline;transition:color .2s}.site-footer a:hover{color:var(--color-text)}@media (width<=639px){.site-header .container{height:60px}.nav-links{gap:var(--space-md)}.nav-links a{font-size:var(--fs-xs);letter-spacing:.04em;padding-bottom:6px}}.nav-toggle{display:none}@media (width<=959px){.site-header .container{height:auto;min-height:60px;padding-top:var(--space-xs);flex-wrap:wrap}.site-nav{flex-basis:100%}.nav-links{gap:0 var(--space-md);flex-wrap:wrap}.nav-links a{min-height:44px;font-size:var(--fs-sm);align-items:center;padding-bottom:0;display:inline-flex}.nav-links a:after{display:none}.js .site-header .container{flex-wrap:nowrap;height:72px;padding-top:0}.js .site-nav{flex-basis:auto}.js .nav-toggle{min-height:44px;font:inherit;font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);cursor:pointer;background:0 0;border:0;align-items:center;gap:.6rem;margin-right:-.25rem;padding:0 .25rem;display:inline-flex}.nav-toggle__icon{width:18px;height:10px;position:relative}.nav-toggle__icon:before,.nav-toggle__icon:after{content:"";background-color:currentColor;width:100%;height:1.5px;position:absolute;left:0}.nav-toggle__icon:before{top:0}.nav-toggle__icon:after{bottom:0}.nav-toggle[aria-expanded=true] .nav-toggle__icon:before{top:4px;transform:rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle__icon:after{bottom:4px;transform:rotate(-45deg)}.js .nav-links{padding:var(--space-xs) var(--space-md) var(--space-sm);background-color:var(--color-bg);border-bottom:1px solid var(--color-border);flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:100%;left:0;right:0}.js .site-nav.is-open .nav-links{display:flex}.js .nav-links li+li{border-top:1px solid var(--color-border)}.js .nav-links a{min-height:48px;display:flex}}@media (width>=768px) and (width<=959px){.js .nav-links{padding-left:var(--space-lg);padding-right:var(--space-lg)}}@media (width<=639px){.js .site-header .container{height:60px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.divider{background-color:var(--color-accent);width:48px;height:1px;margin:var(--space-md) 0}a:focus-visible,button:focus-visible,nav a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}.skip-link{top:-100%;left:var(--space-sm);z-index:100;padding:var(--space-xs) var(--space-sm);background-color:var(--color-bg);color:var(--color-accent);font-size:var(--fs-sm);border:1px solid var(--color-accent);border-radius:4px;font-weight:500;text-decoration:none;transition:top .15s;position:absolute}.skip-link:focus{top:var(--space-sm);outline:2px solid var(--color-accent);outline-offset:2px}.skip-link:focus-visible{top:var(--space-sm)}:root{--photo-font:"Playfair Display", Georgia, serif;--photo-sans:"Inter", system-ui, sans-serif}.photo-hero{text-align:center;padding:var(--space-xl) 0 var(--space-lg)}.photo-hero .section-heading{font-family:var(--photo-font);font-size:var(--fs-hero);letter-spacing:-.02em;color:var(--color-text);margin:var(--space-md) auto;font-weight:400}.photo-hero-text{font-family:var(--photo-sans);font-size:var(--fs-lg);color:var(--color-text-muted);max-width:42ch;margin:0 auto;font-weight:300;line-height:1.7}.photo-editorial{padding:var(--space-lg) var(--space-md) var(--space-xl)}.editorial-note{text-align:center;max-width:48ch;font-family:var(--photo-sans);font-size:var(--fs-sm);color:var(--color-text-muted);margin:0 auto;font-weight:300;line-height:1.8}.editorial-note p{margin-top:var(--space-md);margin-bottom:var(--space-md)}.photo-bridge{margin-top:var(--space-lg)!important}.photo-bridge a{font-family:var(--photo-font);font-size:var(--fs-base);color:var(--color-accent);letter-spacing:.01em;font-weight:600;text-decoration:none}.photo-bridge a:hover{text-decoration:underline}.photography-link-card{text-align:center;padding:var(--space-lg) var(--space-md);border:1px solid var(--color-border);background-color:var(--color-bg-subtle);border-radius:4px;max-width:48ch;margin:0 auto}.photography-link-card-label{font-family:var(--photo-sans);font-size:var(--fs-xs);color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-weight:500;display:inline-block}.photography-link-card h2{margin-top:var(--space-sm);margin-bottom:var(--space-xs);font-family:var(--photo-font);font-size:var(--fs-xl);color:var(--color-text);font-weight:600}.photography-link-card p{font-family:var(--photo-sans);font-size:var(--fs-sm);color:var(--color-text-muted);line-height:1.6}.photography-link-card-link{margin-top:var(--space-sm);font-family:var(--photo-font);font-size:var(--fs-base);color:var(--color-accent);font-weight:600;text-decoration:none;display:inline-block}.photography-link-card-link:hover{text-decoration:underline}
