@charset "UTF-8";:root{--font-body: "Inter", sans-serif;--font-heading: "Outfit", sans-serif;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--font-size-base: 1.6rem;--font-size-sm: 1.4rem;--font-size-xs: 1.2rem;--font-size-body: 1.8rem;--font-size-body-lg: 2rem;--font-size-h1: 8rem;--font-size-h2: 4.8rem;--font-size-h3: 3.2rem;--font-size-h4: 2.4rem;--font-size-h5: 2rem;--font-size-h6: 1.6rem;--line-height-tight: 1.05;--line-height-heading: 1.15;--line-height-body: 1.7;--letter-spacing-tight: -.03em;--letter-spacing-normal: -.01em;--letter-spacing-wide: .08em;--letter-spacing-mega: .15em;--color-black: #0a0a0a;--color-white: #fafafa;--color-bg: #fafafa;--color-text: #1a1a1a;--color-text-secondary: #555;--color-text-muted: #999;--color-heading: #0a0a0a;--color-link: #1a1a1a;--color-link-hover: #000;--color-border: #e0e0e0;--color-border-subtle: #eee;--color-surface: #f5f5f5;--color-surface-elevated: #fff;--color-accent: #0a0a0a;--color-accent-hover: #333;--color-overlay: rgba(10, 10, 10, .92);--container-width: 1200px;--container-narrow: 800px;--container-wide: 1600px;--container-padding: 40px;--grid-gap: 40px;--space-2xs: 4px;--space-xs: 8px;--space-sm: 16px;--space-md: 24px;--space-lg: 40px;--space-xl: 64px;--space-2xl: 96px;--space-3xl: 140px;--space-4xl: 200px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .2s;--duration-normal: .4s;--duration-slow: .8s;--duration-slower: 1.2s;--border-radius-sm: 4px;--border-radius: 8px;--border-radius-lg: 16px;--border-radius-full: 9999px;--z-base: 1;--z-nav: 100;--z-overlay: 500;--z-modal: 1000;--gallery-columns: 4;--gallery-gap: 4px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:62.5%;-webkit-text-size-adjust:100%}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}ul,ol{list-style:none}a{text-decoration:none;color:inherit}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}table{border-collapse:collapse;border-spacing:0}::selection{background:var(--color-black);color:var(--color-white)}body{font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-body);color:var(--color-text);background-color:var(--color-bg);letter-spacing:var(--letter-spacing-normal);overflow-x:hidden}.container{max-width:var(--container-width);margin:0 auto;padding:0 var(--container-padding)}@media only screen and (max-width:768px){.container{padding:0 20px}}.container--narrow{max-width:var(--container-narrow)}.container--wide{max-width:var(--container-wide)}main{position:relative}.section{padding:var(--space-3xl) 0}@media only screen and (max-width:768px){.section{padding:var(--space-xl) 0}}.section--flush{padding:0}.grain{position:fixed;inset:-200%;width:400%;height:400%;z-index:9999;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}@media(prefers-reduced-motion:reduce){.grain{display:none}}.text-center{text-align:center}.error-page{padding:var(--space-4xl) 0}.error-page__message{margin-bottom:var(--space-lg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reveal-heading .reveal-line{display:block;overflow:hidden;padding-bottom:.15em;margin-bottom:-.15em}.reveal-word{display:inline-block;white-space:nowrap}.reveal-char{display:inline-block}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-semibold);color:var(--color-heading);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}@media only screen and (max-width:960px){h1{font-size:6rem}}@media only screen and (max-width:768px){h1{font-size:4.2rem}}h2{font-size:var(--font-size-h2)}@media only screen and (max-width:768px){h2{font-size:3.2rem}}h3{font-size:var(--font-size-h3)}@media only screen and (max-width:768px){h3{font-size:2.4rem}}h4{font-size:var(--font-size-h4)}h5{font-size:var(--font-size-h5)}h6{font-size:var(--font-size-h6)}p{font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--line-height-body);margin-bottom:var(--space-md);color:var(--color-text-secondary)}strong{font-weight:var(--font-weight-semibold)}a{color:var(--color-link);transition:color var(--duration-fast) var(--ease-out)}@media(hover:hover){a:hover{color:var(--color-link-hover)}}article ul,article ol,.prose ul,.prose ol{margin:var(--space-sm) 0 var(--space-md) var(--space-lg);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text-secondary)}article ul li,.prose ul li{list-style:disc;margin-bottom:var(--space-xs)}article ol li,.prose ol li{list-style:decimal;margin-bottom:var(--space-xs)}.btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:14px 32px;font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;border:1px solid var(--color-border);border-radius:var(--border-radius-full);color:var(--color-text);background:transparent;cursor:pointer;transition:all var(--duration-normal) var(--ease-out)}.btn:focus-visible{outline:2px solid var(--color-text);outline-offset:4px}@media(hover:hover){.btn:hover{border-color:var(--color-text);background:var(--color-text);color:var(--color-white)}}@media only screen and (max-width:768px){.btn{padding:12px 24px;font-size:var(--font-size-xs)}}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-white)}@media(hover:hover){.btn--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}}.btn--ghost{border-color:transparent;padding:14px 0}@media(hover:hover){.btn--ghost:hover{background:transparent;color:var(--color-text-muted)}}.eyebrow{display:inline-block;font-family:var(--font-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-mega);text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-md)}code{font-size:1.4rem}pre{margin:var(--space-md) 0;border-radius:var(--border-radius);overflow-x:auto}blockquote{border-left:2px solid var(--color-border);padding-left:var(--space-md);margin:var(--space-lg) 0;font-style:italic;color:var(--color-text-secondary);font-size:var(--font-size-body-lg)}article img,.prose img{width:auto;max-width:100%;height:auto;margin:var(--space-lg) 0;border-radius:var(--border-radius)}.page-wrapper{display:flex;flex-direction:column;min-height:100vh}.page-wrapper main{flex:1;padding-top:80px}.wide-layout main .container{max-width:var(--container-wide)}.site-header{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);padding:var(--space-md) 0;background:#fafafad9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:padding var(--duration-fast) var(--ease-out)}@media only screen and (max-width:768px){.site-header{padding:var(--space-sm) 0}}.site-header__inner{display:flex;align-items:center;justify-content:space-between}.logo:focus-visible{outline:2px solid var(--color-text);outline-offset:4px}.logo__text{font-family:var(--font-heading);font-size:2.2rem;font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);color:var(--color-heading);transition:opacity var(--duration-fast) var(--ease-out)}@media(hover:hover){.logo__text:hover{opacity:.5}}.nav{display:flex;align-items:center;gap:var(--space-lg)}@media only screen and (max-width:768px){.nav{gap:var(--space-md)}}@media only screen and (max-width:420px){.nav{gap:var(--space-sm)}}.nav__link{position:relative;font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary);padding:var(--space-xs) 0;transition:color var(--duration-fast) var(--ease-out)}.nav__link:focus-visible{outline:2px solid var(--color-text);outline-offset:4px}.nav__link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--color-text);transition:width var(--duration-normal) var(--ease-out)}@media(hover:hover){.nav__link:hover{color:var(--color-text)}.nav__link:hover:after{width:100%}}.nav__link.is-active{color:var(--color-text)}.nav__link.is-active:after{width:100%}@media only screen and (max-width:768px){.nav__link{font-size:var(--font-size-xs)}}.site-footer{padding:var(--space-xl) 0;border-top:1px solid var(--color-border)}.site-footer__inner{display:flex;align-items:center;justify-content:space-between}@media only screen and (max-width:768px){.site-footer__inner{flex-direction:column;gap:var(--space-sm)}}.site-footer__left p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:0}.site-footer__right{display:flex;gap:var(--space-md)}.site-footer__right a{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out)}@media(hover:hover){.site-footer__right a:hover{color:var(--color-text)}}.post-list{margin-top:var(--space-lg)}.post-card{padding:var(--space-lg) 0;border-bottom:1px solid var(--color-border)}.post-card:first-child{border-top:1px solid var(--color-border)}.post-card h2{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-xs)}.post-card h2 a{transition:opacity var(--duration-fast) var(--ease-out)}@media(hover:hover){.post-card h2 a:hover{opacity:.5}}@media only screen and (max-width:768px){.post-card h2{font-size:var(--font-size-h4)}}.post-card .post-date{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-sm)}.post-card p{font-size:var(--font-size-body);color:var(--color-text-secondary);max-width:640px}.post-card .btn{margin-top:var(--space-sm)}.project-card{padding:var(--space-lg) 0;border-bottom:1px solid var(--color-border)}.project-card:first-child{border-top:1px solid var(--color-border)}.project-card__header{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-sm)}.project-card__index{font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);letter-spacing:var(--letter-spacing-wide);flex-shrink:0}.project-card__title{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading)}.project-card__title a{display:inline-flex;align-items:baseline;gap:var(--space-xs);transition:opacity var(--duration-fast) var(--ease-out)}@media(hover:hover){.project-card__title a:hover{opacity:.5}}@media only screen and (max-width:768px){.project-card__title{font-size:var(--font-size-h4)}}.project-card__arrow{font-size:.7em;opacity:.4;transition:opacity var(--duration-fast) var(--ease-out)}.project-card__title a:hover .project-card__arrow{opacity:1}.project-card__desc{font-size:var(--font-size-body);color:var(--color-text-secondary);max-width:640px;margin-bottom:var(--space-sm)}.project-card__tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.project-card__tag{display:inline-block;padding:4px 12px;font-family:var(--font-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;border:1px solid var(--color-border);border-radius:var(--border-radius-full);color:var(--color-text-muted)}.featured-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:auto auto;gap:var(--space-md) var(--space-lg);align-items:start}@media only screen and (max-width:960px){.featured-grid{grid-template-columns:100%;grid-template-rows:auto;gap:var(--space-lg) var(--space-md)}}.featured-grid .featured-card:nth-child(1){grid-row:1/3;grid-column:1;height:100%;min-height:0}@media only screen and (max-width:960px){.featured-grid .featured-card:nth-child(1){grid-row:auto;grid-column:auto}}.featured-grid .featured-card:nth-child(2){grid-row:1;grid-column:2}@media only screen and (max-width:960px){.featured-grid .featured-card:nth-child(2){grid-row:auto;grid-column:auto}}.featured-grid .featured-card:nth-child(3){grid-row:1;grid-column:3}@media only screen and (max-width:960px){.featured-grid .featured-card:nth-child(3){grid-row:auto;grid-column:auto}}.featured-grid .featured-card:nth-child(4){grid-row:2;grid-column:2}@media only screen and (max-width:960px){.featured-grid .featured-card:nth-child(4){grid-row:auto;grid-column:auto}}@media only screen and (max-width:768px){.featured-grid{gap:var(--space-lg)}.featured-grid .featured-card{grid-column:1}}.featured-card{position:relative;display:flex;flex-direction:column;gap:var(--space-md);color:var(--color-text);text-decoration:none;transition:all var(--duration-normal) var(--ease-out)}.featured-card:focus-visible{outline:2px solid var(--color-text);outline-offset:4px}.featured-card__image{position:relative;overflow:hidden;aspect-ratio:16/9;background:var(--color-surface)}.featured-card__image img{width:100%;height:100%;object-fit:cover;object-position:left;display:block;transition:transform var(--duration-slow) var(--ease-out)}.featured-card:nth-child(1) .featured-card__image{flex:1 1 0;min-height:0;aspect-ratio:auto}@media only screen and (max-width:960px){.featured-card:nth-child(1) .featured-card__image{flex:none;aspect-ratio:21/9}}@media only screen and (max-width:768px){.featured-card:nth-child(1) .featured-card__image{aspect-ratio:16/9}}.featured-card__placeholder{width:100%;height:100%}.featured-card__placeholder--dark{background:var(--color-accent)}.featured-card__placeholder--light{background:var(--color-surface)}.featured-card__info{display:flex;flex-direction:column;gap:var(--space-xs)}.featured-card__title{font-family:var(--font-heading);font-size:var(--font-size-h5);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal);line-height:var(--line-height-heading);margin:0;display:flex;flex-wrap:wrap;gap:.5ch;align-items:baseline}.featured-card__name{color:var(--color-heading)}.featured-card__divider{color:var(--color-text-muted);font-weight:var(--font-weight-light)}.featured-card__subtitle{color:var(--color-text-secondary);font-weight:var(--font-weight-regular)}.featured-card__meta{font-family:var(--font-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-muted);margin:0}@media(hover:hover){.featured-card:hover img{transform:scale(1.04)}.featured-card:hover .featured-card__name{color:var(--color-link-hover)}}.gallery-loader{display:flex;justify-content:center;align-items:center;padding:var(--space-xl) 0;transition:opacity .4s var(--ease-out)}.gallery-loader.is-hidden{opacity:0;height:0;padding:0;overflow:hidden;pointer-events:none}.gallery-spinner{width:36px;height:36px;border:2px solid var(--color-border);border-top-color:var(--color-text);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.photo-gallery{column-count:var(--gallery-columns);column-gap:var(--gallery-gap)}@media only screen and (max-width:1180px){.photo-gallery{column-count:3}}@media only screen and (max-width:768px){.photo-gallery{column-count:2}}@media only screen and (max-width:420px){.photo-gallery{column-count:1}}.grid-item{break-inside:avoid;margin-bottom:var(--gallery-gap);overflow:hidden;cursor:pointer;background-color:var(--color-surface)}.grid-item img{width:100%;height:auto;display:block;opacity:0;transition:opacity .4s var(--ease-out),transform .6s var(--ease-out)}.grid-item img.is-loaded{opacity:1}@media(hover:hover){.grid-item:hover img.is-loaded{transform:scale(1.03)}}.posts-nav{display:flex;justify-content:space-between;margin-top:var(--space-xl)}.lightbox{display:none;position:fixed;inset:0;z-index:var(--z-modal);background:var(--color-overlay)}.lightbox.is-visible{display:flex;align-items:center;justify-content:center}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.lightbox-image{max-width:90vw;max-height:90vh;object-fit:contain;opacity:0;transition:opacity .3s var(--ease-out)}.lightbox-image.is-loaded{opacity:1}.lightbox-image.is-loaded~.lightbox-spinner{display:none}.lightbox-spinner{position:absolute;width:36px;height:36px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--color-white);border-radius:50%;animation:spin .8s linear infinite}.lightbox-close{position:absolute;top:-40px;right:0;font-size:3.5rem;color:var(--color-white);cursor:pointer;line-height:1;transition:opacity var(--duration-fast) var(--ease-out)}@media(hover:hover){.lightbox-close:hover{opacity:.7}}.tabs{margin:var(--space-lg) 0}.tabs [role=tablist]{display:flex;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-xl)}@media only screen and (max-width:420px){.tabs [role=tablist]{gap:var(--space-xs)}}.tabs [role=tab]{padding:10px 24px;font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;border:1px solid var(--color-border);border-radius:var(--border-radius-full);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-normal) var(--ease-out)}@media(hover:hover){.tabs [role=tab]:hover{border-color:var(--color-text);color:var(--color-text)}}.tabs [role=tab][aria-selected=true]{border-color:var(--color-text);background:var(--color-text);color:var(--color-white)}@media only screen and (max-width:420px){.tabs [role=tab]{padding:8px 16px;font-size:var(--font-size-xs)}}.tab-content{display:none}.tab-content.is-active{display:block}.contact-form{max-width:560px;margin:0 auto var(--space-2xl) auto}.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{width:100%;padding:16px 0;margin-bottom:var(--space-xs);font-size:var(--font-size-body);font-family:var(--font-body);font-weight:var(--font-weight-regular);border:none;border-bottom:1px solid var(--color-border);border-radius:0;background:transparent;color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out)}.contact-form input[type=text]:focus,.contact-form input[type=email]:focus,.contact-form textarea:focus{outline:none;border-bottom-color:var(--color-text)}.contact-form input[type=text]::placeholder,.contact-form input[type=email]::placeholder,.contact-form textarea::placeholder{color:var(--color-text-muted)}.contact-form textarea{resize:vertical;min-height:120px}.contact-form button[type=submit]{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-lg);padding:16px 40px;font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;border:1px solid var(--color-accent);border-radius:var(--border-radius-full);background:var(--color-accent);color:var(--color-white);cursor:pointer;transition:all var(--duration-normal) var(--ease-out)}@media(hover:hover){.contact-form button[type=submit]:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}}.hero{position:relative;padding:var(--space-4xl) 0 var(--space-3xl);overflow:hidden}@media only screen and (max-width:768px){.hero{padding:var(--space-2xl) 0 var(--space-xl)}}.hero-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.hero__content{position:relative;z-index:var(--z-base)}.hero__heading{font-size:clamp(4.8rem,10vw,12rem);font-weight:var(--font-weight-black);line-height:var(--line-height-tight);letter-spacing:-.04em;margin-bottom:var(--space-lg)}.hero__sub{font-size:var(--font-size-body-lg);color:var(--color-text-secondary);max-width:610px;margin-bottom:0}.featured-projects .container{max-width:100%}.featured-projects .featured-grid{margin-bottom:var(--space-xl)}.featured-projects__heading{font-size:var(--font-size-h2);margin-bottom:var(--space-xl)}.featured-projects__more{text-align:center}.about-teaser{background:var(--color-surface)}.about-teaser__content{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-xl);align-items:start}@media only screen and (max-width:960px){.about-teaser__content{grid-template-columns:1fr;gap:var(--space-lg)}}.about-teaser__heading{font-size:clamp(3.2rem,5vw,5.6rem);font-weight:var(--font-weight-bold);line-height:var(--line-height-heading)}.about-teaser__text{padding-top:var(--space-sm)}.about-teaser__text p{margin-bottom:var(--space-lg)}.cta{padding:var(--space-4xl) 0;text-align:center}@media only screen and (max-width:768px){.cta{padding:var(--space-2xl) 0}}.cta__inner{display:flex;flex-direction:column;align-items:center}.cta__heading{font-size:clamp(4rem,8vw,9rem);font-weight:var(--font-weight-black);line-height:var(--line-height-tight);letter-spacing:-.04em;margin-bottom:var(--space-md)}.cta__sub{color:var(--color-text-secondary);font-size:var(--font-size-body-lg);margin-bottom:var(--space-lg)}.work-page{padding-top:var(--space-2xl)}@media only screen and (max-width:768px){.work-page{padding-top:var(--space-xl)}}.work-page__header{margin-bottom:var(--space-xl)}.work-page__header h1{margin-bottom:var(--space-md)}.work-page__header p{font-size:var(--font-size-body-lg);color:var(--color-text-secondary);max-width:600px}.work-page__featured{margin-bottom:var(--space-3xl)}@media only screen and (max-width:768px){.work-page__featured{margin-bottom:var(--space-2xl)}}.work-page__featured .featured-grid{grid-template-columns:1fr 1fr}@media only screen and (max-width:960px){.work-page__featured .featured-grid{grid-template-columns:100%}}.work-page__featured .featured-grid .featured-card{grid-column:unset;grid-row:unset}.work-page__archive{padding-top:var(--space-2xl);border-top:1px solid var(--color-border-subtle)}@media only screen and (max-width:768px){.work-page__archive{padding-top:var(--space-xl)}}.work-page__archive-header{margin-bottom:var(--space-xl)}.work-page__archive-header h2{font-size:var(--font-size-h2);margin-top:var(--space-sm)}.case-study{padding:var(--space-3xl) 0 var(--space-2xl)}@media only screen and (max-width:768px){.case-study{padding:var(--space-xl) 0 var(--space-xl)}}.case-study__header{margin-bottom:var(--space-2xl)}@media only screen and (max-width:768px){.case-study__header{margin-bottom:var(--space-xl)}}.case-study__title{font-size:clamp(4.8rem,8.2vw,10rem);font-weight:var(--font-weight-black);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin-top:var(--space-sm);margin-bottom:var(--space-md);text-transform:uppercase}.case-study__subtitle{font-family:var(--font-heading);font-size:var(--font-size-h4);font-weight:var(--font-weight-regular);color:var(--color-text-secondary);line-height:var(--line-height-heading);margin:0 0 var(--space-sm)}.case-study__meta{font-family:var(--font-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-muted);margin:0}.case-study__link{margin-top:var(--space-md)}.case-study__hero{margin:0 0 var(--space-2xl);overflow:hidden;background:var(--color-surface);aspect-ratio:16/9}.case-study__hero img{width:100%;height:100%;object-fit:cover;display:block;margin:0 auto}@media only screen and (max-width:768px){.case-study__hero{margin-bottom:var(--space-xl)}}.case-study__body{font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text)}.case-study__body>*+*{margin-top:var(--space-md)}.case-study__body h2{font-family:var(--font-heading);font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-normal);margin-top:var(--space-xl);margin-bottom:var(--space-sm);color:var(--color-heading)}.case-study__body h3{font-family:var(--font-heading);font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);margin-top:var(--space-lg);margin-bottom:var(--space-sm);color:var(--color-heading)}.case-study__body p{margin:0}.case-study__body p+p{margin-top:var(--space-md)}.case-study__body a{color:var(--color-link);text-decoration:underline;text-underline-offset:.2em;transition:color var(--duration-normal) var(--ease-out)}@media(hover:hover){.case-study__body a:hover{color:var(--color-link-hover)}}.case-study__body img{width:100%;height:auto;display:block;margin:var(--space-lg) 0}.case-study__body .case-study-video{width:100%;height:auto;display:block;margin:var(--space-lg) 0;border-radius:var(--border-radius)}.case-study__body ul,.case-study__body ol{padding-left:var(--space-md)}.case-study__body ul li+li,.case-study__body ol li+li{margin-top:var(--space-xs)}.case-study__body .media-placeholder{width:100%;aspect-ratio:16/9;background:var(--color-surface);border:1px dashed var(--color-border);display:flex;align-items:center;justify-content:center;margin:var(--space-lg) 0}.case-study__body .media-placeholder--video{aspect-ratio:16/9}.case-study__body .media-placeholder span{font-family:var(--font-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-muted)}.case-study__body .media-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-lg) 0}.case-study__body .media-grid .media-placeholder{margin:0}@media only screen and (max-width:768px){.case-study__body .media-grid{grid-template-columns:1fr}}.case-study__body blockquote{border-left:2px solid var(--color-border);padding-left:var(--space-md);margin:var(--space-lg) 0;color:var(--color-text-secondary);font-style:italic}.case-study__body code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em;background:var(--color-surface);padding:.2em .4em;border-radius:var(--border-radius-sm)}.case-study__nav{display:flex;justify-content:space-between;gap:var(--space-lg);margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border-subtle)}@media only screen and (max-width:768px){.case-study__nav{flex-direction:column;gap:var(--space-md)}}.case-study__nav-link{display:flex;flex-direction:column;gap:var(--space-2xs);text-decoration:none;color:var(--color-text);transition:color var(--duration-normal) var(--ease-out)}.case-study__nav-link--next{text-align:right;margin-left:auto}@media only screen and (max-width:768px){.case-study__nav-link--next{text-align:left;margin-left:0}}@media(hover:hover){.case-study__nav-link:hover{color:var(--color-link-hover)}}.case-study__nav-label{font-family:var(--font-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-muted)}.case-study__nav-title{font-family:var(--font-heading);font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading)}.case-study__footer{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border-subtle)}.about-page{padding-top:var(--space-2xl)}@media only screen and (max-width:768px){.about-page{padding-top:var(--space-xl)}}.about-page__header{margin-bottom:var(--space-2xl)}.about-page__header h1{font-size:clamp(4rem,7vw,8rem);font-weight:var(--font-weight-black);line-height:var(--line-height-tight);letter-spacing:-.04em;margin-bottom:var(--space-lg)}@media only screen and (max-width:768px){.about-page__header{margin-bottom:var(--space-xl)}}.about-page__intro{font-size:var(--font-size-body-lg);color:var(--color-text-secondary);max-width:700px}.about-page__cta{margin-top:var(--space-lg)}.cv-button{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text);text-decoration:none;border:1px solid var(--color-border);border-radius:var(--border-radius-full);transition:all var(--duration-normal) var(--ease-out)}.cv-button svg{transition:transform var(--duration-normal) var(--ease-out)}@media(hover:hover){.cv-button:hover{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.cv-button:hover svg{transform:translate(2px,-2px)}}.cv-button:focus-visible{outline:2px solid var(--color-text);outline-offset:4px}.about-section{padding:var(--space-2xl) 0;border-top:1px solid var(--color-border)}.about-section h2{font-size:var(--font-size-h3);margin-bottom:var(--space-lg)}.about-section__content{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-xl);align-items:start}@media only screen and (max-width:960px){.about-section__content{grid-template-columns:1fr;gap:var(--space-lg)}}.about-section__label{font-family:var(--font-heading);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-mega);text-transform:uppercase;color:var(--color-text-muted);padding-top:var(--space-2xs)}.skills-list{margin:0}.skills-list__row{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-lg);padding:var(--space-md) 0;border-bottom:1px solid var(--color-border-subtle)}.skills-list__row:first-child{padding-top:0}@media only screen and (max-width:768px){.skills-list__row{grid-template-columns:1fr;gap:var(--space-2xs)}}.skills-list__category{font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.skills-list__value{font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:var(--line-height-body);margin:0}.experience-item{padding:var(--space-md) 0;border-bottom:1px solid var(--color-border-subtle)}.experience-item:first-child{padding-top:0}.experience-item__role{font-family:var(--font-heading);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-2xs)}.experience-item__meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.about-section--subtle h2{font-size:var(--font-size-h4);color:var(--color-text-secondary)}.about-section--subtle p{color:var(--color-text-muted)}.countries-list{font-size:var(--font-size-body);color:var(--color-text-secondary);font-style:italic;line-height:1.8}.blog-page{padding-top:var(--space-2xl)}@media only screen and (max-width:768px){.blog-page{padding-top:var(--space-xl)}}.blog-page__intro{color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.blog-page .prose a{text-decoration:underline;text-underline-offset:3px}.blog-page .post-header{margin-bottom:var(--space-2xl)}.blog-page .post-header h1{font-size:clamp(3.2rem,5vw,5.6rem);font-weight:var(--font-weight-bold);line-height:var(--line-height-heading);margin-bottom:var(--space-sm)}.blog-page .post-header .post-date{font-size:var(--font-size-sm);color:var(--color-text-muted)}.blog-page .post-footer{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.blog-page .post-footer a{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out)}@media(hover:hover){.blog-page .post-footer a:hover{color:var(--color-text)}}.contact-page{padding-top:var(--space-2xl)}@media only screen and (max-width:768px){.contact-page{padding-top:var(--space-xl)}}.contact-page__header{text-align:center;margin-bottom:var(--space-xl)}.contact-page__header h1{font-size:clamp(4rem,7vw,8rem);font-weight:var(--font-weight-black);line-height:var(--line-height-tight);letter-spacing:-.04em;margin-bottom:var(--space-md)}.contact-page__header p{font-size:var(--font-size-body-lg);color:var(--color-text-secondary);max-width:500px;margin:0 auto}@media only screen and (max-width:768px){.contact-page__header{margin-bottom:var(--space-xl)}}.photography-page{padding-top:var(--space-2xl)}@media only screen and (max-width:768px){.photography-page{padding-top:var(--space-xl)}}.photography-page h1{margin-bottom:var(--space-xl)}.cv-page{--cv-black: #111;--cv-gray: #555;--cv-light: #999;--cv-rule: #ddd;--cv-bg: #fff;--cv-font-display: "Fraunces", Georgia, serif;--cv-font-body: "DM Sans", system-ui, sans-serif;--cv-page-width: 820px;--cv-page-pad: 48px;background:var(--cv-bg);color:var(--cv-black);font-family:var(--cv-font-body);font-size:1.7rem;line-height:1.6;-webkit-font-smoothing:antialiased;padding-top:var(--space-xl);padding-bottom:var(--space-2xl)}@media only screen and (max-width:768px){.cv-page{--cv-page-pad: 24px;padding-top:var(--space-lg);padding-bottom:var(--space-xl)}}.cv-page__inner{max-width:var(--cv-page-width);margin:0 auto;padding:0 var(--cv-page-pad)}.cv-header{padding-bottom:28px;border-bottom:2px solid var(--cv-black);margin-bottom:32px}.cv-header__name{font-family:var(--cv-font-display);font-weight:400;font-size:2.4em;letter-spacing:-.02em;line-height:1.1;color:var(--cv-black)}@media only screen and (max-width:768px){.cv-header__name{font-size:1.8em}}.cv-header__headline{font-size:.95em;color:var(--cv-gray);margin-top:6px}.cv-header__availability{margin-top:8px;font-size:.85em;color:var(--cv-gray);font-style:italic}.cv-contact{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:14px;font-size:.82em;color:var(--cv-gray)}.cv-contact a{color:var(--cv-gray);text-decoration:none;border-bottom:1px solid var(--cv-rule);transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}@media(hover:hover){.cv-contact:hover a:hover{border-color:var(--cv-black);color:var(--cv-black)}}.cv-cover-letter{margin-bottom:36px;padding-bottom:32px;border-bottom:1px solid var(--cv-rule)}.cv-cover-letter p{font-size:.92em;line-height:1.7;color:var(--cv-gray);max-width:640px}.cv-cover-letter p+p{margin-top:12px}.cv-cover-letter__target{font-family:var(--cv-font-display);font-size:.95em;font-weight:500;color:var(--cv-black);margin-bottom:12px}.cv-cover-letter__meta{font-size:.78em;color:var(--cv-light);text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px}.cv-section{margin-bottom:32px}.cv-section h2{font-family:var(--cv-font-display);font-weight:400;font-size:.78em;text-transform:uppercase;letter-spacing:.14em;color:var(--cv-light);margin-bottom:16px}.cv-about p{font-size:.92em;line-height:1.7;color:var(--cv-gray)}.cv-job+.cv-job{margin-top:26px;padding-top:26px;border-top:1px solid var(--cv-rule)}.cv-job__header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin-bottom:4px}.cv-job__header h3{font-family:var(--cv-font-body);font-weight:600;font-size:.95em;color:var(--cv-black)}.cv-job__dates{font-size:.8em;color:var(--cv-light);white-space:nowrap}.cv-job__title{font-size:.85em;color:var(--cv-gray);font-style:italic;margin-bottom:8px}.cv-job__roles{margin-bottom:10px}.cv-job__role{display:flex;justify-content:space-between;align-items:baseline;font-size:.82em;color:var(--cv-gray);padding:2px 0}.cv-job__role-title{font-style:italic}.cv-job__role-dates{color:var(--cv-light);font-size:.76em;white-space:nowrap;padding-left:12px}.cv-job ul{list-style:none;padding:0}.cv-job li{font-size:.88em;color:var(--cv-gray);line-height:1.65;padding-left:14px;position:relative;margin-bottom:4px}.cv-job li:before{content:"·";position:absolute;left:0;color:var(--cv-light);font-weight:700}.cv-skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px}@media only screen and (max-width:768px){.cv-skills-grid{grid-template-columns:1fr}}.cv-skills-grid h3{font-family:var(--cv-font-body);font-weight:600;font-size:.82em;text-transform:uppercase;letter-spacing:.06em;color:var(--cv-light);margin-bottom:6px}.cv-skills-grid p{font-size:.88em;color:var(--cv-gray);line-height:1.6}.cv-footer-row{display:grid;grid-template-columns:1fr 1fr;gap:40px}@media only screen and (max-width:768px){.cv-footer-row{grid-template-columns:1fr;gap:24px}}.cv-languages{display:flex;flex-wrap:wrap;gap:24px;font-size:.88em;color:var(--cv-gray)}.cv-education__school{font-size:.9em;font-weight:600;color:var(--cv-black)}.cv-education__degree{font-size:.82em;color:var(--cv-gray);font-style:italic;margin-top:2px}.cv-download{position:fixed;bottom:var(--space-lg);right:var(--space-lg);display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:var(--cv-black);color:var(--cv-bg);font-family:var(--cv-font-body);font-size:.82em;font-weight:500;letter-spacing:.04em;border:none;border-radius:6px;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:transform var(--duration-fast) var(--ease-out);z-index:var(--z-overlay, 100)}@media(hover:hover){.cv-download:hover{transform:translateY(-2px)}}.cv-download svg{flex-shrink:0}@media only screen and (max-width:768px){.cv-download{bottom:var(--space-md);right:var(--space-md);padding:10px 16px}}@media print{:root{color-scheme:light}body{background:#fff!important}.site-header,.site-footer,.grain,.cv-download{display:none!important}.cv-page{padding:0;font-size:1.3rem}.cv-page__inner{max-width:100%;padding:0}.cv-header{padding-bottom:18px;margin-bottom:22px}.cv-section{margin-bottom:22px}.cv-job{break-inside:avoid}.cv-job+.cv-job{margin-top:18px;padding-top:18px}.cv-contact a{color:var(--cv-gray)!important;border:none!important}}
