.header{z-index:100;height:var(--header-height);transition:background-color var(--duration-normal)var(--ease-out),box-shadow var(--duration-normal)var(--ease-out);align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.header--transparent{background-color:#0000}.header--solid{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#fefdfbf2;box-shadow:0 1px #0000000f}.header__inner{width:100%;max-width:var(--max-width);padding:0 var(--space-lg);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.header__logo{font-family:var(--font-display),serif;font-size:var(--text-xl);letter-spacing:.15em;text-transform:uppercase;color:var(--color-ink);transition:color var(--duration-fast);font-weight:300}.header__nav{align-items:center;gap:var(--space-xl);display:flex}.header__link{font-family:var(--font-body),sans-serif;font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-charcoal);transition:color var(--duration-fast);font-weight:500;position:relative}.header__link:after{content:"";transform-origin:0;width:100%;height:1px;transition:transform var(--duration-normal)var(--ease-out);background-color:currentColor;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.header__link:hover:after{transform:scaleX(1)}.header__burger{flex-direction:column;gap:5px;width:24px;padding:4px 0;display:none}.header__burger span{background-color:var(--color-ink);height:1.5px;transition:transform var(--duration-normal)var(--ease-out),opacity var(--duration-fast);display:block}.header__burger--open span:first-child{transform:translateY(6.5px)rotate(45deg)}.header__burger--open span:nth-child(2){opacity:0}.header__burger--open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.header__mobile-menu{background-color:var(--color-white);width:300px;max-width:80vw;padding:calc(var(--header-height) + var(--space-xl))var(--space-lg)var(--space-lg);gap:var(--space-lg);transition:transform var(--duration-normal)var(--ease-out);z-index:99;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-8px 0 32px #0000001a}.header__mobile-menu--open{transform:translate(0)}.header__mobile-link{font-family:var(--font-display),serif;font-size:var(--text-2xl);color:var(--color-ink);opacity:0;transition:opacity var(--duration-normal)var(--ease-out),transform var(--duration-normal)var(--ease-out);font-weight:400;transform:translate(20px)}.header__mobile-menu--open .header__mobile-link{opacity:1;transform:translate(0)}.header__mobile-menu--open .header__mobile-link:first-child{transition-delay:.1s}.header__mobile-menu--open .header__mobile-link:nth-child(2){transition-delay:.15s}.header__mobile-menu--open .header__mobile-link:nth-child(3){transition-delay:.2s}.header__backdrop{opacity:0;pointer-events:none;transition:opacity var(--duration-normal)var(--ease-out);z-index:98;background-color:#0000004d;position:fixed;inset:0}.header__backdrop--visible{opacity:1;pointer-events:auto}@media (max-width:768px){.header__nav{display:none}.header__burger{display:flex}.header__inner{padding:0 var(--space-md)}}
.footer{background-color:var(--color-linen);padding:var(--space-2xl)0;border-top:var(--border-light)}.footer__inner{width:100%;max-width:var(--max-width);padding:0 var(--space-lg);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.footer__brand{font-family:var(--font-display),serif;font-size:var(--text-lg);letter-spacing:.15em;text-transform:uppercase;color:var(--color-ink);margin-bottom:var(--space-sm);font-weight:300}.footer__tagline{font-size:var(--text-sm);color:var(--color-stone)}.footer__right{text-align:right}.footer__email{font-size:var(--text-sm);color:var(--color-brass);transition:color var(--duration-fast)}.footer__email:hover{color:var(--color-ink)}.footer__copy{font-size:var(--text-sm);color:var(--color-stone);margin-top:var(--space-xs)}@media (max-width:768px){.footer{padding:var(--space-xl)0}.footer__inner{text-align:center;gap:var(--space-md);padding:0 var(--space-md);flex-direction:column}.footer__right{text-align:center}}
