:root{--color-page-background:#f9f8f6;--color-surface:#fff;--color-text-primary:#111;--color-text-secondary:#888;--color-text-tertiary:#bbb;--color-accent:#111;--color-border-subtle:#e8e6e1;--color-caption-background:rgba(0,0,0,.72);--color-caption-text:#fff;--color-caption-meta:rgba(255,255,255,.60);--color-lightbox-backdrop:rgba(8,8,8,.97);--color-lightbox-ui:rgba(255,255,255,.85);--color-lightbox-ui-hover:#fff;--color-lightbox-meta:rgba(255,255,255,.50);--font-family:'Inter' , -apple-system , BlinkMacSystemFont , sans-serif;--font-size-wordmark:.8125rem;--font-size-label:.6875rem;--font-size-caption-title:.8125rem;--font-size-caption-meta:.6875rem;--font-size-hero-title:clamp(2.25rem,6vw,5rem);--font-size-hero-sub:clamp(.75rem,1.5vw,.875rem);--font-size-footer:.6875rem;--letter-spacing-wide:.12em;--letter-spacing-wider:.18em;--space-page-x:clamp(1.5rem,5vw,6rem);--space-page-top:2rem;--space-nav-height:4.5rem;--space-hero-top:clamp(3rem,6vw,6rem);--space-hero-bottom:clamp(2.5rem,5vw,5rem);--space-section-gap:clamp(1rem,2vw,1.5rem);--space-footer-top:clamp(3rem,5vw,5rem);--grid-column-gap:clamp(.625rem,1.25vw,1.125rem);--grid-item-margin-bottom:clamp(.625rem,1.25vw,1.125rem);--grid-columns-wide:4;--grid-columns-desktop:3;--grid-columns-tablet:2;--grid-columns-mobile:1;--grid-border-radius:2px;--transition-caption:transform .38s cubic-bezier(.4,0,.2,1) , opacity .38s cubic-bezier(.4,0,.2,1);--transition-image-scale:transform .55s cubic-bezier(.25,.46,.45,.94);--transition-lightbox:opacity .28s ease;--transition-lightbox-img:opacity .22s ease , transform .28s cubic-bezier(.4,0,.2,1);--color-input-bg:#fff;--color-input-border:#d8d5cf;--color-input-focus:#111;--color-success-bg:#f0faf4;--color-success-text:#1a7a45;--color-success-border:#b6e8cb;--color-error-text:#c0392b}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-family:          var(--font-family);font-size:16px;background-color:var(--color-page-background);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{min-height:100vh}img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}.site-nav{position:sticky;top:0;z-index:200;background-color:var(--color-page-background);border-bottom:1px solid var(--color-border-subtle)}.nav__bar{display:flex;align-items:center;justify-content:space-between;height:var(--space-nav-height);padding:0 var(--space-page-x)}.nav__wordmark{font-size:var(--font-size-wordmark);font-weight:600;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-primary)}.nav__wordmark span{font-weight:300;color:var(--color-text-secondary)}.nav__links{display:flex;align-items:center;gap:2rem;list-style:none}.nav__links a{font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary);transition:color .2s ease}.nav__links a:hover{color:var(--color-text-primary)}.nav__links .nav__link--active{color:var(--color-text-primary)}.nav__hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:2.5rem;height:2.5rem;background:transparent;border:none;cursor:pointer;padding:.25rem;border-radius:4px;-webkit-tap-highlight-color:transparent}.nav__hamburger-line{display:block;width:22px;height:1.5px;background:var(--color-text-primary);border-radius:2px;transition:transform .3s ease , opacity .3s ease , width .3s ease;transform-origin:center}.nav__hamburger[aria-expanded="true"] .nav__hamburger-line:nth-child(1) {transform:translateY(6.5px) rotate(45deg)}.nav__hamburger[aria-expanded="true"] .nav__hamburger-line:nth-child(2) {opacity:0;width:0}.nav__hamburger[aria-expanded="true"] .nav__hamburger-line:nth-child(3) {transform:translateY(-6.5px) rotate(-45deg)}.nav__mobile-menu{display:none;flex-direction:column;padding:0 var(--space-page-x) 1.5rem;border-top:1px solid var(--color-border-subtle);background-color:var(--color-page-background);overflow:hidden;max-height:0;opacity:0;transition:max-height .35s cubic-bezier(.4,0,.2,1) , opacity .25s ease , padding .35s ease}.nav__mobile-menu.is-open{max-height:20rem;opacity:1;padding-top:1.25rem}.nav__mobile-menu li{list-style:none;border-bottom:1px solid var(--color-border-subtle)}.nav__mobile-menu li:last-child{border-bottom:none}.nav__mobile-menu a{display:block;padding:.9rem 0;font-size:.8125rem;font-weight:500;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary);transition:color .2s ease}.nav__mobile-menu a:hover,.nav__mobile-menu .nav__link--active{color:var(--color-text-primary)}@media (max-width:680px){.nav__links{display:none}.nav__hamburger{display:flex}.nav__mobile-menu{display:flex}}.site-hero{padding:var(--space-hero-top) var(--space-page-x) var(--space-hero-bottom);border-bottom:1px solid var(--color-border-subtle)}.hero__tag{display:inline-block;font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:1.5rem}.hero__title{font-size:var(--font-size-hero-title);font-weight:300;line-height:1.05;letter-spacing:-.02em;max-width:14ch;margin-bottom:1.75rem}.hero__title strong{font-weight:600}.hero__meta{display:flex;align-items:center;gap:1.5rem}.hero__count{font-size:var(--font-size-hero-sub);font-weight:400;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-secondary)}.hero__rule{flex:1;max-width:4rem;height:1px;background:var(--color-text-tertiary)}.hero__desc{font-size:var(--font-size-hero-sub);color:var(--color-text-secondary);max-width:48ch;line-height:1.6}.gallery-filter-wrap{border-bottom:1px solid var(--color-border-subtle)}.gallery-filter{display:flex;align-items:center;flex-wrap:wrap;gap:.375rem;padding:.75rem var(--space-page-x)}.filter__btn{min-height:2.75rem;padding:0 1rem;font-family:     var(--font-family);font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary);background:transparent;border:1px solid transparent;border-radius:999px;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;white-space:nowrap}.filter__btn:hover{color:var(--color-text-primary);border-color:var(--color-border-subtle)}.filter__btn.is-active{color:var(--color-surface);background:var(--color-text-primary);border-color:var(--color-text-primary)}@media (hover:none){.gallery__caption{transform:translateY(0);opacity:1}}.gallery{padding:var(--space-section-gap) var(--space-page-x);column-count:var(--grid-columns-desktop);column-gap:var(--grid-column-gap)}@media (min-width:1400px){.gallery{column-count:var(--grid-columns-wide)}}@media (max-width:900px){.gallery{column-count:var(--grid-columns-tablet)}}@media (max-width:560px){.gallery{column-count:var(--grid-columns-mobile)}}.gallery__item{position:relative;display:block;break-inside:avoid;margin-bottom:var(--grid-item-margin-bottom);border-radius:var(--grid-border-radius);overflow:hidden;cursor:pointer;background:var(--color-border-subtle)}.gallery__image{width:100%;height:auto;display:block;transition:var(--transition-image-scale);will-change:transform}.gallery__item:hover .gallery__image{transform:scale(1.035)}.gallery__caption{position:absolute;bottom:0;left:0;right:0;padding:var(--space-section-gap) 1rem .875rem;background:      linear-gradient(
                         to top,
                         var(--color-caption-background) 0%,
                         rgba(0,0,0,0) 100%
                       );transform:translateY(100%);opacity:0;transition:var(--transition-caption)}.gallery__item:hover .gallery__caption{transform:translateY(0);opacity:1}.gallery__caption-title{display:block;font-size:var(--font-size-caption-title);font-weight:500;color:var(--color-caption-text);margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery__caption-meta{display:block;font-size:var(--font-size-caption-meta);font-weight:400;letter-spacing:var(--letter-spacing-wide);color:var(--color-caption-meta);text-transform:uppercase}.gallery__expand-icon{position:absolute;top:.75rem;right:.75rem;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);border-radius:50%;opacity:0;transition:opacity .25s ease}.gallery__expand-icon svg{width:12px;height:12px;stroke:#fff;fill:none}.gallery__item:hover .gallery__expand-icon{opacity:1}.lightbox{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:var(--color-lightbox-backdrop);opacity:0;pointer-events:none;transition:var(--transition-lightbox)}.lightbox.is-open{opacity:1;pointer-events:all}.lightbox__bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;flex-shrink:0}.lightbox__counter{font-size:var(--font-size-label);font-weight:400;letter-spacing:var(--letter-spacing-wide);color:var(--color-lightbox-meta)}.lightbox__close{width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--color-lightbox-ui);cursor:pointer;transition:background .2s ease , color .2s ease}.lightbox__close:hover{background:rgba(255,255,255,.1);color:var(--color-lightbox-ui-hover)}.lightbox__close svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5}.lightbox__stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:0 5rem;overflow:hidden}@media (max-width:560px){.lightbox__stage{padding:0 3rem}}.lightbox__image{max-width:100%;max-height:100%;object-fit:contain;border-radius:1px;box-shadow:0 30px 80px rgba(0,0,0,.6);opacity:1;transform:scale(1);transition:var(--transition-lightbox-img)}.lightbox__image.is-loading{opacity:0;transform:scale(.97)}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:50%;color:var(--color-lightbox-ui);cursor:pointer;transition:background .2s ease , color .2s ease}.lightbox__nav:hover{background:rgba(255,255,255,.18);color:var(--color-lightbox-ui-hover)}.lightbox__nav svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75}.lightbox__nav--prev{left:1.25rem}.lightbox__nav--next{right:1.25rem}.lightbox__caption{padding:1.25rem 1.5rem 1.75rem;flex-shrink:0;text-align:center}.lightbox__caption-title{font-size:.9375rem;font-weight:500;color:var(--color-lightbox-ui);margin-bottom:.3rem}.lightbox__caption-meta{font-size:var(--font-size-label);font-weight:400;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-lightbox-meta)}.site-footer{padding:var(--space-footer-top) var(--space-page-x) 3rem;border-top:1px solid var(--color-border-subtle);display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;flex-wrap:wrap}.footer__brand{font-size:var(--font-size-footer);font-weight:600;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-primary);margin-bottom:.5rem}.footer__credit{font-size:var(--font-size-footer);color:var(--color-text-secondary);line-height:1.7}.footer__credit a{color:var(--color-text-primary);text-decoration:underline;text-underline-offset:2px}.footer__nav{display:flex;gap:1.5rem;list-style:none}.footer__nav a{font-size:var(--font-size-footer);font-weight:500;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary);transition:color .2s ease}.footer__nav a:hover{color:var(--color-text-primary)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.page-hero{padding:var(--space-hero-top) var(--space-page-x) var(--space-hero-bottom);border-bottom:1px solid var(--color-border-subtle)}.page-hero__tag{display:inline-block;font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:1.5rem}.page-hero__title{font-size:var(--font-size-hero-title);font-weight:300;line-height:1.05;letter-spacing:-.02em;max-width:14ch}.page-hero__title strong{font-weight:600}.about-body{padding:clamp(3rem,6vw,6rem) var(--space-page-x)}.about-intro{display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(2rem,5vw,5rem);align-items:start;margin-bottom:clamp(3rem,6vw,6rem);padding-bottom:clamp(3rem,6vw,6rem);border-bottom:1px solid var(--color-border-subtle)}@media (max-width:720px){.about-intro{grid-template-columns:1fr}}.about-portrait{position:relative}.about-portrait__img{width:100%;aspect-ratio:  3 / 4;object-fit:cover;border-radius:2px;display:block}.about-bio__label{font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:1.5rem}.about-bio__name{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:300;letter-spacing:-.02em;line-height:1.15;margin-bottom:.25rem}.about-bio__name strong{font-weight:600}.about-bio__title{font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:2rem}.about-bio__divider{width:2.5rem;height:1px;background:var(--color-text-tertiary);margin-bottom:2rem}.about-bio__text{font-size:1rem;font-weight:300;line-height:1.8;color:var(--color-text-primary);margin-bottom:1.5rem}.about-bio__text:last-of-type{margin-bottom:0}.about-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-border-subtle);border:1px solid var(--color-border-subtle);margin-bottom:clamp(3rem,6vw,6rem);padding-bottom:clamp(3rem,6vw,6rem);border-bottom:1px solid var(--color-border-subtle)}@media (max-width:600px){.about-stats{grid-template-columns:repeat(2,1fr)}}.about-stat{background:var(--color-page-background);padding:2rem 1.5rem}.about-stat__number{font-size:clamp(2rem,4vw,3rem);font-weight:300;letter-spacing:-.03em;line-height:1;margin-bottom:.5rem}.about-stat__label{font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary)}.about-approach__items{display:flex;flex-direction:column;gap:2rem;margin-top:.5rem}.about-approach__item-number{font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-tertiary);margin-bottom:.5rem}.about-approach__item-title{font-size:1.125rem;font-weight:500;margin-bottom:.6rem}.about-approach__item-text{font-size:.9375rem;font-weight:300;line-height:1.75;color:var(--color-text-secondary)}.about-cta{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:.5rem;height:2.75rem;padding:0 1.5rem;font-family:     var(--font-family);font-size:var(--font-size-label);font-weight:600;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;border-radius:2px;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.btn--primary{background:var(--color-text-primary);color:var(--color-surface);border:1px solid var(--color-text-primary)}.btn--primary:hover{background:transparent;color:var(--color-text-primary)}.btn--ghost{background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border-subtle)}.btn--ghost:hover{border-color:var(--color-text-primary)}.contact-body{padding:clamp(3rem,6vw,6rem) var(--space-page-x)}.contact-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(2.5rem,6vw,7rem);align-items:start}@media (max-width:800px){.contact-grid{grid-template-columns:1fr}}.contact-form__heading{font-size:1.25rem;font-weight:500;letter-spacing:-.01em;margin-bottom:.5rem}.contact-form__subheading{font-size:.9375rem;font-weight:300;color:var(--color-text-secondary);line-height:1.6;margin-bottom:2.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}@media (max-width:480px){.form-row{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.form-field:last-child{margin-bottom:0}.form-label{font-size:var(--font-size-label);font-weight:600;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary)}.form-label .required{color:var(--color-error-text);margin-left:2px}.form-input,.form-textarea,.form-select{width:100%;min-height:2.75rem;padding:.625rem .875rem;font-family:    var(--font-family);font-size:.9375rem;font-weight:300;color:var(--color-text-primary);background:var(--color-input-bg);border:1px solid var(--color-input-border);border-radius:2px;appearance:none;-webkit-appearance:none;outline:none;transition:border-color .2s ease , box-shadow .2s ease}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-tertiary)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-input-focus);box-shadow:0 0 0 3px rgba(17,17,17,.07)}.form-textarea{resize:vertical;min-height:10rem;line-height:1.65}.form-select-wrap{position:relative}.form-select-wrap::after{content:'';position:absolute;right:.9rem;top:50%;transform:translateY(-50%);width:10px;height:6px;background:var(--color-text-secondary);clip-path:polygon(0 0,100% 0,50% 100%);pointer-events:none}.form-submit{margin-top:1.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.btn-submit{display:inline-flex;align-items:center;gap:.5rem;height:2.75rem;padding:0 1.75rem;font-family:     var(--font-family);font-size:var(--font-size-label);font-weight:600;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-surface);background:var(--color-text-primary);border:1px solid var(--color-text-primary);border-radius:2px;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.btn-submit:hover{background:transparent;color:var(--color-text-primary)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.form-note{font-size:var(--font-size-label);color:var(--color-text-secondary);line-height:1.6}.form-message{display:none;padding:1rem 1.25rem;border-radius:2px;font-size:.875rem;font-weight:400;line-height:1.5;margin-top:1rem}.form-message.is-success{display:block;background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.form-message.is-error{display:block;background:#fdf0ef;color:var(--color-error-text);border:1px solid #f5c6c3}.form-input.is-invalid,.form-textarea.is-invalid{border-color:var(--color-error-text)}.field-error{display:none;font-size:var(--font-size-label);color:var(--color-error-text);margin-top:.2rem}.field-error.is-visible{display:block}.contact-info{position:sticky;top:        calc(var(--space-nav-height) + 2rem)}@media (max-width:800px){.contact-info{position:static}}.contact-info__section{margin-bottom:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--color-border-subtle)}.contact-info__section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.contact-info__label{font-size:var(--font-size-label);font-weight:600;letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:1rem}.contact-info__value{font-size:1rem;font-weight:300;line-height:1.6}.contact-info__link{display:inline-block;font-size:.9375rem;font-weight:400;color:var(--color-text-primary);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--color-text-tertiary);transition:text-decoration-color .2s ease;margin-bottom:.375rem}.contact-info__link:hover{text-decoration-color:var(--color-text-primary)}.social-links{display:flex;flex-direction:column;gap:.5rem}.social-link{display:flex;align-items:center;gap:.625rem;font-size:.875rem;font-weight:400;color:var(--color-text-secondary);transition:color .2s ease}.social-link:hover{color:var(--color-text-primary)}.social-link__platform{font-size:var(--font-size-label);font-weight:600;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-tertiary);min-width:4rem}.availability{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--font-size-label);font-weight:500;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.availability__dot{width:7px;height:7px;border-radius:50%;background:#2ecc71;flex-shrink:0;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse {
      0%, 100% { opacity: 1;   transform: scale(1); }
      50%      { opacity: 0.5; transform: scale(1.3); }
    }