@font-face {
  font-family: Inter;
  src: url('../fonts/InterVariable.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --ids__text: rgb(5, 5, 5);
  --ids__background: #fff;
  --site-inset: clamp(20px, 3vw, 48px);
  --ids__duration-instant: 0s;
  --ids__duration-base: 0.5s;
  --ids__easing-base: ease;
}

* {
  box-sizing: border-box;
}

a {
  transition:
    color var(--ids__duration-base) var(--ids__easing-base),
    text-decoration-color var(--ids__duration-base) var(--ids__easing-base),
    background-color var(--ids__duration-base) var(--ids__easing-base),
    border-color var(--ids__duration-base) var(--ids__easing-base);
}

a:hover {
  transition-duration: var(--ids__duration-instant);
}

@media (prefers-reduced-motion: reduce) {
  a { transition: none; }
}

body {
  margin: 0;
  min-height: 100svh;
  background: var(--ids__background);
  color: var(--ids__text);
  font-family: Inter, sans-serif;
  -webkit-font-smoothing: antialiased;
}

html { scrollbar-gutter: stable; }
html:has(body.catalog-open), body.catalog-open { overflow: hidden; }
html:has(body.cart-open) { overflow: hidden; }
body.cart-open { overflow: clip; }

.cart-panel {
  position: fixed;
  inset: 0 0 0 auto;
  width: 50%;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--ids__background);
  color: var(--ids__text);
}

.cart-panel[open] { display: flex; flex-direction: column; animation: cart-slide-in 500ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.cart-panel::backdrop { background: rgb(0 0 0 / 35%); animation: cart-backdrop-in 500ms ease both; }
.cart-panel.is-closing { animation: cart-slide-out 350ms cubic-bezier(0.4, 0, 1, 1) both; }
.cart-panel.is-closing::backdrop { animation: cart-backdrop-out 350ms ease both; }
@keyframes cart-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes cart-slide-out { from { transform: translateX(0); } to { transform: translateX(100%); } }
@keyframes cart-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes cart-backdrop-out { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .cart-panel[open], .cart-panel::backdrop, .cart-panel.is-closing, .cart-panel.is-closing::backdrop { animation: none; }
}
.cart-panel__header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 28px; border-bottom: 1px solid #e6e6e6; }
.cart-panel__header h2 { margin: 0; font-size: 24px; font-weight: 500; letter-spacing: -0.03em; }
.cart-panel__header h2:focus { outline: none; }
.cart-panel__close { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 10px; border: 0; color: inherit; background: transparent; cursor: pointer; }
.cart-panel__close svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.cart-panel__body { flex: 1; min-height: 0; overflow-y: auto; padding: 28px; }
.cart-panel__status { margin: 0; font-size: 16px; line-height: 1.5; }
.cart-panel__status:not(:empty) { margin-bottom: 24px; }
.cart-panel__body.is-empty { display: grid; place-items: center; }
.cart-panel__body.is-empty .cart-panel__status, .cart-panel__body.is-empty .cart-panel__items { display: none; }
.cart-panel__empty { width: 100%; max-width: 360px; text-align: center; }
.cart-panel__empty p { margin: 0 0 28px; font-size: 18px; line-height: 1.5; }
.cart-panel__catalog { display: block; width: 100%; min-height: 48px; padding: 14px 20px; border: 1px solid var(--ids__text); background: var(--ids__text); color: #fff; font: inherit; font-size: 14px; text-align: center; text-decoration: none; cursor: pointer; }
.cart-panel__item { display: flex; align-items: flex-start; gap: 24px; padding: 24px 0; border-bottom: 1px solid #e6e6e6; }
.cart-panel__item:first-child { padding-top: 0; }
.cart-panel__image { width: 144px; height: 180px; flex: 0 0 144px; object-fit: cover; }
.cart-panel__details { flex: 1; min-width: 0; }
.cart-panel__item-title { display: block; color: inherit; font-size: 18px; line-height: 1.35; text-decoration: underline; text-decoration-color: transparent; overflow-wrap: anywhere; }
.cart-panel__item-title:hover { text-decoration: underline; }
.cart-panel__item-price { margin: 12px 0 8px; font-size: 18px; }
.cart-panel__quantity { margin: 0; font-size: 14px; color: #666; }
.cart-panel__remove, .cart-panel__retry { margin-top: 12px; padding: 8px 0; border: 0; background: transparent; color: inherit; font: inherit; font-size: 14px; text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.cart-panel__remove:disabled { opacity: 0.5; cursor: wait; }
.cart-panel__summary { padding: 24px 28px calc(24px + env(safe-area-inset-bottom)); border-top: 1px solid #e6e6e6; }
.cart-panel__summary p { display: flex; justify-content: space-between; gap: 20px; margin: 0; font-size: 20px; }
.cart-panel__summary strong { font-weight: 500; }
.cart-panel__checkout { display: block; margin-top: 24px; padding: 16px 20px; background: var(--ids__text); color: #fff; text-decoration: none; text-align: center; }
.cart-panel [hidden] { display: none; }
.cart-panel button:focus-visible, .cart-panel a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

@media (max-width: 767px) {
  .cart-panel { width: 100%; }
  .cart-panel__header, .cart-panel__body { padding: 20px; }
  .cart-panel__summary { padding: 20px 20px calc(20px + env(safe-area-inset-bottom)); }
  .cart-panel__item { gap: 16px; }
  .cart-panel__image { width: 104px; height: 130px; flex-basis: 104px; }
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  column-gap: 40px;
  align-items: center;
  padding: 10px var(--site-inset);
  text-align: center;
  background: transparent;
  transition: transform 240ms ease, color 180ms ease;
}

.site-header.site-header--at-top { background: transparent; }

.site-header--hidden {
  transform: translateY(-100%);
  pointer-events: none;
}

body.has-hero > main,
body:not(.has-hero) main {
  padding-top: var(--header-height, 59px);
}

@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}

.site-logo {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  display: inline-block;
  color: inherit;
  font-size: clamp(18px, calc(1vw + 6px), 22px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.035em;
  text-decoration: none;
}

.site-navigation {
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  display: flex;
  align-items: center;
  gap: 24px;
}

.site-menu-toggle { display: none; }

.site-projects,
.site-about,
.site-catalog,
.site-cart {
  grid-column: 3;
  justify-self: end;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: clamp(12px, 1vw, 16px);
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  text-decoration-thickness: 1px;
  white-space: nowrap;
  cursor: pointer;
}

.site-projects, .site-about, .site-catalog {
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.site-projects:hover, .site-about:hover, .site-catalog:hover { text-decoration-color: currentColor; }

.site-catalog {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
}

.site-catalog:hover,
.site-cart:hover {
  text-decoration-line: underline;
  text-underline-offset: 0.2em;
}

.site-projects:focus-visible,
.site-about:focus-visible,
.site-catalog:focus-visible,
.site-cart:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

body.catalog-open .site-header {
  background: transparent;
  color: var(--ids__text);
  transform: none;
  pointer-events: auto;
}

body.catalog-open .site-logo { text-shadow: none; }

.catalog-backdrop {
  position: fixed;
  inset: var(--header-height, 59px) 0 0;
  z-index: 40;
  padding: 0;
  border: 0;
  background: rgb(0 0 0 / 35%);
  cursor: pointer;
}

.catalog-menu {
  position: fixed;
  inset: var(--header-height, 59px) 0 auto;
  z-index: 45;
  height: min(560px, calc(100dvh - var(--header-height, 59px) - 88px));
  border-top: 1px solid #e6e6e6;
  background: var(--ids__background);
  animation: catalog-reveal 180ms ease-out;
}

.catalog-menu[hidden], .catalog-backdrop[hidden] { display: none; }

@keyframes catalog-reveal {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 767px) {
  .catalog-menu { height: calc(100dvh - var(--header-height, 59px)); }
}

@media (max-width: 767px) {
  .site-header { column-gap: 20px; }
  .site-navigation { display: none; }
  .site-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    min-height: 40px;
    padding: 8px 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    cursor: pointer;
  }
  .site-menu-toggle svg { display: none; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; }
  .site-menu-toggle[aria-expanded="true"] span { display: none; }
  .site-menu-toggle[aria-expanded="true"] svg { display: block; }
  .site-menu-toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
  .site-logo, .site-cart { grid-row: 1; }
}

.mobile-menu-links { padding: 12px var(--site-inset); }
.mobile-menu-links[hidden] { display: none; }
.mobile-menu-links a, .mobile-menu-links button {
  display: block;
  width: 100%;
  padding: 22px 0;
  border: 0;
  border-bottom: 1px solid #e6e6e6;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 18px;
  font-weight: 500;
  text-align: left;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}
.mobile-menu-links a:focus-visible, .mobile-menu-links button:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; }

@media (prefers-reduced-motion: reduce) {
  .catalog-menu { animation: none; }
}

.site-logo:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 6px;
}

.site-content {
  padding: var(--site-inset);
}

.hero-slider {
  position: relative;
  --hero-media-height: 55.5556vw;
}

.hero-slider__track {
  display: flex;
  border-bottom: 1px solid #e6e6e6;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
}

.hero-slider__track::-webkit-scrollbar {
  display: none;
}

.hero-slider__track[data-dragging] {
  scroll-snap-type: none;
  cursor: grabbing;
}

.hero-slider__slide {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 0 0 50%;
  min-width: 0;
  scroll-snap-align: start;
}

.hero-slider__slide:not(:last-child)::after {
  content: '';
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 2;
  width: 1px;
  background: #e6e6e6;
  pointer-events: none;
}

.hero-slider--single .hero-slider__slide {
  flex-basis: 100%;
}

.hero-slider__media {
  position: relative;
  flex: 0 0 auto;
}

.hero-slider__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 28px 24px 32px;
  background: var(--ids__background);
  text-align: center;
}

.hero-slider__description {
  width: 100%;
  max-width: 560px;
  margin: 0;
  font-size: clamp(16px, 1.2vw, 20px);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.hero-slider__button {
  display: inline-block;
  max-width: 100%;
  margin-top: auto;
  padding: 12px 32px;
  border: 1px solid currentColor;
  color: var(--ids__text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
}

.hero-slider__button:hover {
  color: #fff;
  background: var(--ids__text);
}

.hero-slider__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.hero-slider__link:focus-visible {
  outline: 2px solid #fff;
  outline-offset: -4px;
}

.hero-slider__caption {
  position: absolute;
  inset: auto 0 0;
  margin: 0;
  padding: 48px 24px 24px;
  background: linear-gradient(transparent, rgb(0 0 0 / 35%));
  color: #fff;
  font-size: clamp(18px, 2vw, 28px);
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  text-wrap: balance;
}

.hero-slider__caption--black {
  color: #000;
  background: linear-gradient(transparent, rgb(255 255 255 / 35%));
}

.hero-slider__slide picture,
.hero-slider__slide img {
  display: block;
  width: 100%;
}

.hero-slider__slide img {
  aspect-ratio: 9 / 10;
  height: auto;
  object-fit: cover;
  user-select: none;
}

.hero-slider__arrow {
  position: absolute;
  top: calc(var(--hero-media-height) / 2);
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 80px;
  height: 96px;
  padding: 12px;
  border: 0;
  background: transparent;
  color: white;
  cursor: pointer;
  filter: drop-shadow(0 1px 3px rgb(0 0 0 / 35%));
}

.hero-slider__arrow[hidden] {
  display: none;
}

.hero-slider__arrow--prev { left: 12px; }
.hero-slider__arrow--next { right: 12px; }

.hero-slider__controls {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px var(--site-inset);
}

.hero-slider__controls[hidden] { display: none; }

.hero-slider__pagination,
.hero-slider__play {
  background: rgba(232, 232, 237, 0.72);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
}

.hero-slider__pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border-radius: 28px;
}

.hero-slider__dot {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 32px;
  min-width: 0;
  height: 56px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: width 480ms cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-slider__dot[aria-current="true"] { width: 64px; }

.hero-slider__indicator {
  position: relative;
  display: block;
  width: 8px;
  height: 8px;
  overflow: hidden;
  border-radius: 8px;
  background: #b8b8bd;
  transition: width 480ms cubic-bezier(0.16, 1, 0.3, 1), background-color 240ms ease;
}

.hero-slider__dot[aria-current="true"] .hero-slider__indicator {
  width: 48px;
  background: #d2d2d7;
}

.hero-slider__indicator::after {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: max(8px, calc(100% * var(--progress, 0)));
  border-radius: inherit;
  background: var(--ids__text);
  opacity: clamp(0, calc(var(--progress, 0) * 14), 1);
}

.hero-slider__play {
  display: grid;
  place-items: center;
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  padding: 14px;
  border: 0;
  border-radius: 50%;
  color: var(--ids__text);
  cursor: pointer;
}

.hero-slider__play svg { width: 28px; height: 28px; fill: currentColor; }
.hero-slider__dot:focus-visible,
.hero-slider__play:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  .hero-slider__dot, .hero-slider__indicator { transition: none; }
}

.hero-slider__arrow svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}

.hero-slider:focus-visible,
.hero-slider__arrow:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -4px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (max-width: 767px) {
  .hero-slider__slide { flex-basis: 100%; }
  .hero-slider__arrow--prev { left: 0; }
  .hero-slider__arrow--next { right: 0; }
}

.intro-statement {
  padding: clamp(48px, 6vw, 96px) var(--site-inset);
}

.intro-statement__layout {
  max-width: 1440px;
  margin: 0 auto;
}

.intro-statement__layout--portrait {
  display: grid;
  grid-template-columns: minmax(200px, 280px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(32px, 4vw, 64px);
}

.intro-statement__portrait {
  margin: 0;
}

.intro-statement__contacts {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin-top: 24px;
}

.intro-statement__contacts a {
  color: inherit;
  font-size: 16px;
  line-height: 1.4;
  text-decoration: underline;
  text-decoration-color: rgb(5 5 5 / 30%);
  text-underline-offset: 0.2em;
  overflow-wrap: anywhere;
}

.intro-statement__contacts a:hover {
  text-decoration-color: currentColor;
}

.intro-statement__portrait img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 6 / 7;
  object-fit: cover;
}

@media (max-width: 767px) {
  .intro-statement {
    padding-top: 32px;
    padding-bottom: 48px;
  }

  .intro-statement__layout--portrait {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .intro-statement__profile {
    display: flex;
    align-items: flex-end;
    gap: 24px;
  }

  .intro-statement__portrait {
    flex: 0 0 clamp(120px, 36vw, 160px);
    width: clamp(120px, 36vw, 160px);
  }

  .intro-statement__contacts {
    min-width: 0;
    gap: 0;
    margin-top: 0;
  }

  .intro-statement__contacts a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
  }
}

.intro-statement__text {
  max-width: 1440px;
  margin: 0 auto;
  font-size: clamp(22px, 2.4vw, 36px);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.015em;
}

.intro-statement__text + .intro-statement__text {
  margin-top: 0.75em;
}

.intro-statement__body p {
  margin: 0;
}

.intro-statement__body p + p {
  margin-top: 0.75em;
}

.intro-statement__text a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.12em;
  text-decoration-color: rgb(5 5 5 / 30%);
}

.intro-statement__text a:hover {
  text-decoration-color: currentColor;
}

.intro-statement__footer {
  max-width: 1440px;
  margin: 32px auto 0;
}

.intro-statement__more {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  padding: 14px 20px;
  border: 1px solid currentColor;
  color: inherit;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
}

.intro-statement__more:hover {
  color: #fff;
  background: var(--ids__text);
}

.product-card { display: block; color: inherit; text-decoration: none; }
.product-card .ids__inline-gallery { margin: 0; }
.product-card__photos { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: #f5f5f5; touch-action: pan-y; }
.product-card__photos img, .product-card__photos video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; visibility: hidden; pointer-events: none; }
.product-card__photos .is-active { visibility: visible; }
.product-card .ids__inline-gallery__dashes { display: flex; justify-content: center; align-items: center; gap: 6px; height: 18px; padding-top: 6px; pointer-events: none; }
.product-card .ids__inline-gallery__dash { width: 8px; height: 2px; border-radius: 1px; background: #999; transition: width var(--ids__duration-fast, 150ms) var(--ids__easing-base), background-color var(--ids__duration-fast, 150ms) var(--ids__easing-base); }
.product-card .ids__inline-gallery__dash-active { width: 24px; background: var(--ids__text); }
.product-card__caption { display: grid; justify-items: start; gap: 6px; padding: 12px 0 0; text-align: left; font-size: 16px; line-height: 1.35; }
.product-card__title { font-weight: 400; text-transform: none; overflow-wrap: anywhere; }
.product-card__price { font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums; }
.work-sold { color: #d52d25; }
@media (prefers-reduced-motion: reduce) { .product-card .ids__inline-gallery__dash { transition: none; } }
.catalog-menu { overflow-y: auto; }
body:not(.has-hero) main.catalog-page { padding: calc(var(--header-height, 59px) + 48px) var(--site-inset) 64px; }
.catalog-page h1 { margin: 0 0 40px; font-size: clamp(28px, 3vw, 44px); line-height: 1.15; font-weight: 400; letter-spacing: -0.035em; }
.catalog-page__products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.catalog-page__products--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.catalog-page__empty { font-size: 16px; line-height: 1.5; }
body.checkout-layout { background: linear-gradient(to right, #fff 50%, #f5f5f5 50%); }
.checkout-layout:has(.checkout-page--empty) { background: #fff; }
.checkout-layout .site-header { width: 50%; background: transparent; }
.checkout-layout .site-navigation, .checkout-layout .site-menu-toggle, .checkout-layout .site-cart { display: none; }
.checkout-layout .site-logo { grid-column: 1 / -1; justify-self: start; }
body:not(.has-hero) main.checkout-page { padding: 0; }
.checkout-page [hidden] { display: none; }
.checkout-page h1,.checkout-page__title,.checkout-page__empty-title { margin: 0 0 40px; font-size: clamp(24px, 2.3vw, 34px); font-weight: 400; letter-spacing: -0.035em; }
.checkout-page__layout { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100dvh; align-items: start; }
.checkout-page__form { padding: calc(var(--header-height, 59px) + 104px) clamp(28px, 5.5vw, 96px) 64px; }
.checkout-page h2, .checkout-page legend { margin: 0 0 24px; padding: 0; font-size: 22px; font-weight: 400; }
.checkout-page__fields { display: grid; gap: 16px; }
.checkout-page__fields--paired { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.checkout-page__field--wide { grid-column: 1 / -1; }
.checkout-page__fields label { position: relative; min-width: 0; }
.checkout-page__email-group > label:first-child { display: block; }
.checkout-page__newsletter { display: flex; align-items: flex-start; gap: 10px; margin-top: 12px; min-height: 32px; font-size: 14px; line-height: 1.5; cursor: pointer; }
.checkout-page__fields .checkout-page__newsletter input { flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; margin: 2px 0 0; padding: 0; accent-color: #111; }
.checkout-page__fields .checkout-page__newsletter input:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.checkout-page__field-label { position: absolute; z-index: 1; top: 10px; left: 20px; color: #666; font-size: 12px; line-height: 16px; pointer-events: none; }
.checkout-page__fields :is(input, textarea) { width: 100%; min-height: 64px; padding: 28px 20px 10px; border: 1px solid transparent; border-radius: 0; color: inherit; background: #f1f1ef; font: inherit; font-size: 16px; }
.checkout-page__fields :is(input, textarea)[aria-invalid="true"] { border-color: #b83225; background: #fff1ef; }
.checkout-page__fields label:has(input[aria-invalid="true"]) .checkout-page__field-label { color: #a5281d; }
.checkout-page__field-error { display: block; margin-top: 6px; color: #a5281d; font-size: 12px; line-height: 1.4; }
.checkout-page__fields textarea { display: block; resize: vertical; min-height: 112px; line-height: 1.5; }
.checkout-page__fields :is(input, textarea)::placeholder { color: #777; opacity: 1; }
.checkout-page__fields :is(input, textarea):focus { outline: 0; border-color: #777; }
.checkout-page__fields :is(input, textarea)[aria-invalid="true"]:focus { border-color: #b83225; }
.checkout-page fieldset { margin: 40px 0 0; padding: 0; border: 0; min-width: 0; }
.checkout-page__choice { display: flex; align-items: center; gap: 12px; min-height: 52px; margin-top: 12px; padding: 12px 20px; background: #f1f1ef; font-size: 14px; cursor: pointer; }
.checkout-page__choice input { accent-color: #111; }
.checkout-page__choice > span:not(.checkout-page__delivery-price) { min-width: 0; overflow-wrap: anywhere; }
.checkout-page__pickup, .checkout-page__delivery-note, .checkout-page__notice { margin: 20px 0 0; font-size: 14px; line-height: 1.5; color: #666; }
.checkout-page__notice:empty { display: none; }
.checkout-page__payment { margin-top: 40px; }
.checkout-page__payment-option { display: flex; align-items: center; gap: 10px; padding: 16px 20px; background: #f1f1ef; font-size: 14px; cursor: pointer; }
.checkout-page__payment-option input { flex: 0 0 auto; margin: 0; accent-color: #111; }
.checkout-page__payment-logo { display: block; width: 24px; height: 24px; flex: 0 0 24px; }
.checkout-page__delivery-price { margin-left: auto; white-space: nowrap; }
.checkout-page__delivery-logo { display: block; width: 24px; height: 24px; flex: 0 0 24px; }
.checkout-page__point-help { margin: 12px 0 0; color: #777; font-size: 14px; line-height: 1.5; }
.checkout-page__delivery-info { margin-top: 16px; padding: 16px 20px; border: 1px solid #e6e6e6; color: #555; font-size: 14px; line-height: 1.55; }
.checkout-page__delivery-info p { margin: 0; white-space: pre-line; }
.checkout-page__point-map { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; color: inherit; text-decoration: none; }
.checkout-page__point-map span { text-decoration: underline; text-underline-offset: 3px; }
.checkout-page__map-pin { flex: 0 0 18px; }
.checkout-page__delivery-card { border: 1px solid #dedede; background: #fafafa; }
.checkout-page__delivery-card .checkout-page__choice { margin: 0; min-height: 64px; background: transparent; }
.checkout-page__delivery-card .checkout-page__choice:has(input:checked) { background: #f1f1ef; }
.checkout-page__delivery-option + .checkout-page__delivery-option { border-top: 1px solid #e6e6e6; }
.checkout-page__delivery-panel { overflow-anchor: none; }
.checkout-page__delivery-panel.is-animating { overflow: clip; }
.checkout-page__delivery-details { padding: 20px; border-top: 1px solid #e6e6e6; }
.checkout-page .checkout-page__delivery-details fieldset { margin: 0; }
.checkout-page__delivery-details .checkout-page__point-legend, .checkout-page__address > legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.checkout-page__delivery-details .checkout-page__fields :is(input, textarea) { background: #fff; border-color: #dedede; }
.checkout-page__delivery-details .checkout-page__fields :is(input, textarea):focus { border-color: #777; }
.checkout-page__delivery-details .checkout-page__fields :is(input, textarea)[aria-invalid="true"] { border-color: #b83225; background: #fff1ef; }
.checkout-page__delivery-details .checkout-page__delivery-info { margin-top: 20px; padding: 0; border: 0; }
.checkout-page__delivery-details .checkout-page__delivery-info:first-child { margin-top: 0; }
.checkout-page .checkout-page__delivery-info:not([hidden]) ~ fieldset:not([hidden]) { margin-top: 20px; }
.checkout-page__delivery-details .checkout-page__pickup { margin-top: 0; }
.address-autocomplete { position: relative; min-width: 0; }
.address-autocomplete > label { display: block; }
.address-autocomplete__options { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 10; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; padding: 4px; margin: 0; list-style: none; background: #fff; border: 1px solid #dedede; box-shadow: 0 8px 24px rgb(0 0 0 / 8%); font-size: 14px; line-height: 1.4; }
.address-autocomplete__options [role="option"] { padding: 12px; min-height: 44px; cursor: pointer; }
.address-autocomplete__options [role="option"]:hover, .address-autocomplete__options [aria-selected="true"] { background: #f1f1ef; }
.address-autocomplete__status { margin: 12px 0 0; color: #777; font-size: 14px; line-height: 1.5; }
.address-autocomplete__status:empty { display: none; }
.checkout-page__continue { width: 100%; min-height: 52px; margin-top: 20px; border: 0; background: #111; color: #fff; font: inherit; font-size: 14px; cursor: pointer; }
.checkout-page__continue:disabled { background: #ddd; color: #666; cursor: wait; }
.checkout-page__choice:has(input:disabled) { opacity: 0.5; cursor: default; }
body.payment-layout { background: linear-gradient(to right, #fff 50%, #f5f5f5 50%); }
.payment-layout .site-header { width: 50%; background: transparent; }
.payment-layout .site-navigation, .payment-layout .site-menu-toggle, .payment-layout .site-cart { display: none; }
.payment-layout .site-logo { grid-column: 1 / -1; justify-self: start; }
body:not(.has-hero) main.payment-result { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100dvh; padding: 0; }
.payment-result__message { padding: calc(var(--header-height, 59px) + 72px) clamp(28px, 5.5vw, 96px) 64px; }
.payment-result__number { margin: 0 0 36px; color: #666; font-size: 14px; }
.payment-result__icon { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 24px; border: 1px solid #dcdcdc; border-radius: 50%; }
.payment-result__icon svg { width: 32px; height: 32px; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.payment-result__icon--success svg { color: #239447; }
.payment-result__icon--canceled svg { color: #d63832; }
.payment-result h1 { max-width: 540px; margin: 0 0 24px; font-size: clamp(32px, 3.3vw, 52px); line-height: 1.08; font-weight: 400; letter-spacing: -0.035em; text-wrap: balance; }
.payment-result__description { max-width: 470px; margin: 0; font-size: 18px; line-height: 1.5; }
.payment-result__test { max-width: 470px; margin: 24px 0 0; padding: 12px 16px; border: 1px solid #e6e6e6; color: #666; font-size: 13px; line-height: 1.5; }
.payment-result__actions { display: grid; justify-items: start; gap: 16px; max-width: 400px; margin-top: 36px; }
.payment-result__primary { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 56px; padding: 16px 20px; background: #111; color: #fff; text-align: center; text-decoration: none; font-size: 16px; }
.payment-result__primary:hover { background: #333; color: #fff; }
.payment-result__secondary { display: flex; align-items: center; gap: 6px; min-height: 44px; color: inherit; font-size: 16px; text-decoration: none; }
.payment-result__secondary span:last-child { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgb(5 5 5 / 20%); text-underline-offset: 4px; transition: text-decoration-color var(--ids__duration-base) var(--ids__easing-base); }
.payment-result__secondary:hover { color: inherit; }
.payment-result__secondary:hover span:last-child { text-decoration-color: currentColor; }
.payment-result__summary { min-width: 0; padding: calc(var(--header-height, 59px) + 72px) 28px 48px; background: #f5f5f5; }
.payment-result__summary h2 { margin: 0; padding-bottom: 24px; border-bottom: 1px solid #dcdcdc; font-size: 24px; line-height: 1.3; font-weight: 400; letter-spacing: -0.03em; }
.payment-result__item { display: grid; grid-template-columns: 144px minmax(0, 1fr) auto; align-items: start; gap: 24px; padding: 24px 0; border-bottom: 1px solid #dcdcdc; }
.payment-result__photo { position: relative; width: 144px; height: 180px; background: #eee; }
.payment-result__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.payment-result__quantity { position: absolute; top: -8px; right: -8px; min-width: 24px; height: 24px; padding: 4px 6px; border-radius: 50%; background: #111; color: #fff; font-size: 12px; line-height: 16px; text-align: center; }
.payment-result__item-title, .payment-result__item-price { margin: 0; font-size: 16px; line-height: 1.4; }
.payment-result__item-title { overflow-wrap: anywhere; }
.payment-result__item-price { white-space: nowrap; }
.payment-result__totals { margin: 24px 0 0; }
.payment-result__totals > div { display: flex; justify-content: space-between; gap: 16px; margin-top: 24px; font-size: 14px; line-height: 1.4; }
.payment-result__totals dd { margin: 0; text-align: right; }
.payment-result__totals .payment-result__total { padding-top: 24px; border-top: 1px solid #dcdcdc; font-size: 20px; }
.payment-result__total dd { font-weight: 500; }
@media (max-width: 767px) {
  body.payment-layout { background: #fff; }
  .payment-layout .site-header { width: 100%; }
  body:not(.has-hero) main.payment-result { grid-template-columns: minmax(0, 1fr); }
  .payment-result__message { padding: calc(var(--header-height, 59px) + 32px) 20px 36px; }
  .payment-result__number { margin-bottom: 24px; }
  .payment-result__icon { width: 56px; height: 56px; margin-bottom: 20px; }
  .payment-result h1 { margin-bottom: 20px; font-size: 34px; }
  .payment-result__description { font-size: 16px; }
  .payment-result__actions { gap: 8px; max-width: none; margin-top: 28px; }
  .payment-result__summary { padding: 28px 20px 36px; }
  .payment-result__summary h2 { font-size: 20px; }
  .payment-result__item { grid-template-columns: 104px minmax(0, 1fr) auto; gap: 16px; }
  .payment-result__photo { width: 104px; height: 130px; }
  .payment-result__item-title, .payment-result__item-price { font-size: 14px; }
}
.checkout-page__back { position: absolute; top: calc(var(--header-height, 59px) + 24px); left: clamp(28px, 5.5vw, 96px); display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 0; color: inherit; font-size: 18px; text-decoration-thickness: 1px; text-decoration-color: rgb(5 5 5 / 20%); text-underline-offset: 4px; }
.checkout-page__back:hover { color: inherit; text-decoration-color: currentColor; }
.checkout-page__back { text-decoration: none; }
.checkout-page__back-text { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgb(5 5 5 / 20%); text-underline-offset: 4px; transition: text-decoration-color var(--ids__duration-base) var(--ids__easing-base); }
.checkout-page__back:hover .checkout-page__back-text { text-decoration-color: currentColor; }
.checkout-page__summary { padding: 24px 28px 40px; min-height: 100dvh; background: #f5f5f5; position: sticky; top: 0; }
@media (min-width: 768px) {
  .checkout-page__summary { height: 100dvh; min-height: 0; align-self: start; }
  .checkout-page__summary-inner { display: flex; flex-direction: column; height: 100%; min-height: 0; }
  .checkout-page__summary h2 { flex: 0 0 auto; }
  .checkout-page__items { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; scrollbar-gutter: stable; }
  .checkout-page__cost, .checkout-page__total, .checkout-page__status { flex: 0 0 auto; }
  .checkout-page__status:empty { display: none; }
}
.checkout-page__summary h2 { margin: 0; padding-bottom: 24px; font-size: 24px; letter-spacing: -0.03em; border-bottom: 1px solid #dcdcdc; }
.checkout-page__item { display: grid; grid-template-columns: 144px minmax(0, 1fr) auto; gap: 24px; padding: 24px 0; border-bottom: 1px solid #dcdcdc; align-items: start; }
.checkout-page__photo { position: relative; display: block; height: 180px; background: #eee; text-decoration: none; }
.checkout-page__photo img { display: block; width: 144px; height: 180px; object-fit: cover; }
.checkout-page__quantity { position: absolute; top: -8px; right: -8px; min-width: 24px; height: 24px; padding: 4px 6px; border-radius: 50%; color: #fff; background: #111; font-size: 12px; line-height: 16px; text-align: center; }
.checkout-page__item-information { font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
.checkout-page__item-information a { color: inherit; text-decoration: none; }
.checkout-page__remove { display: block; margin-top: 20px; padding: 0; border: 0; background: none; color: #777; font: inherit; font-size: 14px; cursor: pointer; }
.checkout-page__remove:hover { color: #111; }
.checkout-page__remove:disabled { opacity: 0.5; cursor: wait; }
.checkout-page__item-price { margin: 0; font-size: 16px; white-space: nowrap; }
.checkout-page__cost, .checkout-page__total { display: flex; justify-content: space-between; gap: 16px; margin: 24px 0 0; font-size: 14px; }
.checkout-page__total { padding-top: 24px; border-top: 1px solid #dcdcdc; font-size: 20px; }
.checkout-page__total strong { font-weight: 500; }
.checkout-page__summary-note { margin: 12px 0 0; font-size: 12px; color: #777; }
.checkout-page__status { font-size: 14px; line-height: 1.5; }
.checkout-page__empty { padding: calc(var(--header-height, 59px) + 48px) var(--site-inset); }
@media (max-width: 767px) {
  .product-card__caption { gap: 6px; padding-top: 10px; font-size: 14px; }
  body:not(.has-hero) main.catalog-page { padding: calc(var(--header-height, 59px) + 28px) 16px 40px; }
  .catalog-page h1 { margin-bottom: 24px; }
  .catalog-page__products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
  .catalog-page__products--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.checkout-layout { background: #fff; }
  .checkout-layout .site-header { width: 100%; }
  body:not(.has-hero) main.checkout-page { padding: var(--header-height, 59px) 0 0; }
  .checkout-page__form > .checkout-page__title { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .checkout-page__layout { grid-template-columns: minmax(0, 1fr); }
  .checkout-page__back { position: static; order: -2; min-height: 52px; padding: 12px 20px; font-size: 16px; }
  .checkout-page__summary { order: -1; position: static; min-height: 0; padding: 24px 20px 32px; }
  .checkout-page__summary h2 { font-size: 20px; }
  .checkout-page__form { padding: 32px 20px 48px; }
  .checkout-page h2, .checkout-page legend { margin-bottom: 20px; font-size: 20px; }
  .checkout-page__summary h2 { margin-bottom: 0; }
  .checkout-page fieldset, .checkout-page__payment { margin-top: 36px; }
  .checkout-page__fields { gap: 12px; }
  .checkout-page__fields--paired { grid-template-columns: minmax(0, 1fr); }
  .checkout-page__payment-option { margin: 0; }
  .checkout-page__continue { min-height: 56px; padding: 16px 12px; font-size: 16px; }
  .checkout-page__item { grid-template-columns: 104px minmax(0, 1fr) auto; gap: 16px; }
  .checkout-page__photo { height: 130px; }
  .checkout-page__photo img { width: 104px; height: 130px; }
  .checkout-page__item-information, .checkout-page__item-price { font-size: 14px; }
  .checkout-page__field-label { left: 12px; }
  .checkout-page__fields :is(input, textarea) { min-height: 64px; padding: 28px 12px 10px; font-size: 16px; }
  .checkout-page__empty { padding: 32px 20px; }
}

body:not(.has-hero) main.product-page {
  padding: 0;
}

.product-page__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  align-items: start;
}

.product-page__media, .product-page__gallery { min-width: 0; }
.product-page__gallery-controls { display: none; }
.product-page__gallery:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; }
.product-page__image { margin: 0; border-bottom: 1px solid #e6e6e6; }
.product-page__image img { display: block; width: 100%; height: auto; }
.product-page__image video { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: contain; background: #f5f5f5; }
.product-page__details {
  position: sticky;
  top: var(--header-height, 59px);
  display: grid;
  align-items: center;
  min-height: calc(100svh - var(--header-height, 59px));
  padding: 48px clamp(32px, 5vw, 96px);
}
.product-page__information { width: 100%; max-width: 480px; margin: 0 auto; }
.product-page__other { margin-top: 100px; padding: 0 var(--site-inset) 64px; }
.product-page__other h2 { margin: 0 0 24px; font-size: 20px; line-height: 1.3; font-weight: 400; }
.product-page__back { display: flex; align-items: center; gap: 6px; width: fit-content; min-height: 44px; margin-bottom: 24px; color: inherit; font-size: 16px; text-decoration: none; }
.product-page__back:hover { color: inherit; text-decoration: none; }
.product-page__back-text { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgb(5 5 5 / 20%); text-underline-offset: 4px; transition: text-decoration-color var(--ids__duration-base) var(--ids__easing-base); }
.product-page__back:hover .product-page__back-text { text-decoration-color: currentColor; }
.product-page__back:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.product-page__layout--no-gallery { grid-template-columns: minmax(0, 1fr); }
.product-page__details h1 { margin: 0 0 24px; font-size: clamp(26px, 2vw, 34px); line-height: 1.15; font-weight: 500; letter-spacing: -0.03em; }
.product-page__price { margin: 0 0 32px; font-size: 24px; }
.product-page__price:has(+ .product-page__sold) { margin-bottom: 12px; }
.product-page__sold { margin: 0 0 32px; font-size: 18px; font-weight: 500; }
.product-page__description { font-size: 18px; line-height: 1.5; }
.product-page__description summary { display: none; }
.product-page__description p { margin: 0 0 16px; }
.product-page__form { position: relative; margin-top: 32px; }
.cart-panel__quantity-controls {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  border: 1px solid #e6e6e6;
}
.cart-panel__quantity-controls button {
  width: 44px;
  min-height: 50px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 22px;
  cursor: pointer;
}
.cart-panel__quantity-controls button:disabled { opacity: 0.4; cursor: wait; }
.cart-panel__quantity-controls output { min-width: 32px; text-align: center; font-size: 16px; font-variant-numeric: tabular-nums; }
.cart-panel__quantity-controls { width: fit-content; margin-top: 12px; }
.cart-panel__quantity-controls button { min-height: 40px; }
.product-page__add { width: 100%; min-height: 52px; padding: 14px 20px; border: 1px solid var(--ids__text); background: var(--ids__text); color: #fff; font: inherit; font-size: 16px; cursor: pointer; }
.product-page__add:disabled { opacity: 0.6; cursor: wait; }
.product-page__form:not([aria-busy="true"]) .product-page__add:disabled { cursor: default; }
.product-page__add:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.product-page__status { min-height: 24px; font-size: 16px; line-height: 1.5; }

@media (max-width: 767px) {
  .product-page__layout { grid-template-columns: minmax(0, 1fr); }
  .product-page__other { margin-top: 24px; padding: 0 16px 40px; }
  .product-page__other h2 { margin-bottom: 20px; }
  .product-page__other .catalog-page__products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
  .product-page__media { position: relative; }
  .product-page__gallery {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }
  .product-page__image { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
  .product-page__gallery { scrollbar-width: none; }
  .product-page__gallery::-webkit-scrollbar { display: none; }
  .product-page__image { aspect-ratio: 3 / 4; }
  .product-page__image img, .product-page__image video { height: 100%; object-fit: contain; background: #f5f5f5; }
  .product-page__gallery-controls { display: block; }
  .product-page__gallery-indicators { position: absolute; top: 8px; left: 16px; right: 16px; display: flex; gap: 6px; }
  .product-page__gallery-indicators button { flex: 1; height: 24px; padding: 10px 0; border: 0; background: transparent; cursor: pointer; }
  .product-page__gallery-indicators button::after { content: ''; display: block; height: 2px; background: rgb(5 5 5 / 12%); }
  .product-page__gallery-indicators button[aria-current="true"]::after { background: rgb(5 5 5 / 60%); }
  .product-page__gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 48px; height: 64px; border: 0; padding: 12px; background: transparent; color: var(--ids__text); cursor: pointer; }
  .product-page__gallery-arrow--prev { left: 0; }
  .product-page__gallery-arrow--next { right: 0; }
  .product-page__gallery-arrow svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1; }
  .product-page__gallery-controls button:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; }
  .product-page__details { position: static; min-height: 0; padding: 24px 16px 40px; }
  .product-page__information { display: flex; flex-direction: column; max-width: none; }
  .product-page__back { order: -1; margin-bottom: 20px; }
  .product-page__details h1 { order: 0; margin-bottom: 8px; font-size: 18px; line-height: 1.35; font-weight: 400; text-align: center; letter-spacing: -0.02em; }
  .product-page__price { order: 1; margin: 0; font-size: 18px; font-weight: 500; text-align: center; }
  .product-page__price:has(+ .product-page__sold) { margin-bottom: 8px; }
  .product-page__sold { order: 1; margin: 0; font-size: 16px; text-align: center; }
  .product-page__form { order: 2; margin-top: 28px; }
  .product-page__add { min-height: 48px; font-size: 14px; }
  .product-page__status { min-height: 0; margin: 0; }
  .product-page__status:not(:empty) { margin-top: 12px; }
  .product-page__description { order: 3; margin-top: 32px; border-top: 1px solid #e6e6e6; font-size: 14px; line-height: 1.55; }
  .product-page__description summary { display: flex; justify-content: space-between; gap: 16px; padding: 18px 0; font-size: 14px; cursor: pointer; list-style: none; }
  .product-page__description summary::-webkit-details-marker { display: none; }
  .product-page__description summary::after { content: '+'; }
  .product-page__description[open] summary::after { content: '−'; }
  .product-page__description-content { padding: 0 8px; }
}

@media (max-width: 767px) {
  .intro-statement__text {
    font-size: 20px;
    line-height: 1.5;
    letter-spacing: -0.01em;
  }

  .intro-statement__body p + p {
    margin-top: 1em;
  }

  .intro-statement__footer {
    margin-top: 24px;
  }

  .intro-statement__more {
    display: flex;
    justify-content: center;
    min-height: 48px;
    width: 100%;
  }
}


/* A compact notice using the same quiet surface as the site's form fields. */
.cookie-banner {
  position: fixed;
  left: var(--site-inset);
  bottom: 24px;
  z-index: 130;
  display: flex;
  align-items: center;
  gap: 20px;
  width: max-content;
  max-width: min(520px, calc(100vw - 2 * var(--site-inset)));
  padding: 8px 20px;
  border: 1px solid rgb(5 5 5 / 8%);
  border-radius: 0;
  background: #f1f1ef;
  color: var(--ids__text);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .24s ease, transform .24s ease;
}
.cookie-banner[hidden] { display: none; }
.cookie-banner.is-visible { opacity: 1; transform: translateY(0); }
.cookie-banner__text { min-width: 0; font-size: 14px; font-weight: 400; line-height: 1.5; }
.cookie-banner__text p { margin: 0; }
.cookie-banner__text a { color: inherit; text-decoration: underline; text-decoration-color: rgb(5 5 5 / 30%); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.cookie-banner__text a:hover { color: #666; text-decoration-color: currentColor; }
.cookie-banner__button {
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
  padding: 10px 0 10px 20px;
  border: 0;
  border-left: 1px solid rgb(5 5 5 / 14%);
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  cursor: pointer;
  transition: color var(--ids__duration-base) var(--ids__easing-base);
}
.cookie-banner__button:hover { color: #666; transition-duration: var(--ids__duration-instant); }
.cookie-banner__button:focus-visible { outline: 2px solid var(--ids__text); outline-offset: 4px; }
@media(max-width:767px) {
  .cookie-banner { left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); width: auto; max-width: none; gap: 16px; padding: 8px 16px; }
  .cookie-banner__text { font-size: 13px; }
  .cookie-banner__button { margin-left: auto; padding-left: 16px; }
}
@media(prefers-reduced-motion:reduce) { .cookie-banner,.cookie-banner__button { transition: none; transform: none; } }

body:not(.has-hero) main.technical-page { padding: calc(var(--header-height, 59px) + 64px) var(--site-inset) 96px; min-height: calc(100svh - 120px); }
.technical-page__document { max-width: 760px; margin: 0 auto; }
.technical-page h1 { margin: 0 0 40px; font-size: clamp(28px, 2.8vw, 40px); font-weight: 400; line-height: 1.2; letter-spacing: -.03em; overflow-wrap: break-word; text-wrap: balance; }
.technical-page__text { font-size: 16px; line-height: 1.7; overflow-wrap: break-word; }
.technical-page__text p { margin: 0 0 20px; }
.technical-page__text h2,.technical-page__text h3 { margin: 36px 0 16px; font-weight: 500; line-height: 1.3; }
.technical-page__text h2 { font-size: 24px; }
.technical-page__text h3 { font-size: 20px; }
.technical-page__text ul,.technical-page__text ol { margin: 0 0 20px; padding-left: 24px; }
.technical-page__text li { margin-bottom: 8px; }
.technical-page__text a { overflow-wrap: anywhere; color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.technical-page__text a:hover { color: #666; }
.site-footer { padding: 28px var(--site-inset); border-top: 1px solid #e6e6e6; }
.site-footer__documents { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.site-footer__documents a { color: #666; font-size: 13px; line-height: 1.5; text-decoration: none; }
.site-footer__documents a:hover { color: var(--ids__text); }
@media(max-width:767px) {
  body:not(.has-hero) main.technical-page { padding: calc(var(--header-height, 59px) + 32px) 20px 56px; }
  .technical-page h1 { margin-bottom: 28px; }
  .technical-page__text { font-size: 15px; }
  .technical-page__text h2 { font-size: 21px; }
  .technical-page__text h3 { font-size: 18px; }
  .site-footer { padding: 24px 16px; }
  .site-footer__documents { flex-direction: column; gap: 12px; }
}

body:not(.has-hero) main.projects-page { padding: calc(var(--header-height, 59px) + 48px) var(--site-inset) 64px; }
.projects-page h1 { margin: 0 0 40px; font-size: clamp(28px, 3vw, 44px); font-weight: 400; line-height: 1.15; letter-spacing: -.035em; }
.projects-grid { --project-gap: 24px; --project-width: calc((100% - 2 * var(--project-gap)) / 3); position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px var(--project-gap); }
.projects-grid__sizer,.projects-grid__gutter { position: absolute; height: 0; visibility: hidden; pointer-events: none; }
.projects-grid__sizer { width: var(--project-width); }
.projects-grid__gutter { width: var(--project-gap); }
.projects-grid.is-masonry { display: block; }
.projects-grid.is-masonry .project-tile { width: var(--project-width); margin-bottom: 40px; }
.project-tile { display: block; min-width: 0; color: inherit; text-decoration: none; }
.project-tile__image { width: 100%; overflow: hidden; background: #f1f1ef; }
.project-tile__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: filter var(--ids__duration-base) var(--ids__easing-base); }
.project-tile:focus-visible .project-tile__image img { filter: brightness(1.05); transition-duration: var(--ids__duration-instant); }
@media(hover:hover) {
  .project-tile:hover .project-tile__image img { filter: brightness(1.05); transition-duration: var(--ids__duration-instant); }
}
.project-tile__caption { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; font-size: 16px; line-height: 1.4; }
.project-tile__subtitle { color: #777; font-size: 14px; }
.project-tile__title { transition: color var(--ids__duration-base) var(--ids__easing-base); }
.project-tile:hover .project-tile__title { color: #666; transition-duration: var(--ids__duration-instant); }
.project-tile:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.projects-page__empty { font-size: 16px; line-height: 1.5; }
.project-page__back { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; margin-bottom: 24px; color: inherit; text-decoration: none; }
.project-page__back span:last-child { text-decoration: underline; text-underline-offset: 3px; }
.project-page__cover { display: block; width: 100%; height: auto; margin-bottom: 32px; }
@media(max-width:767px) {
  body:not(.has-hero) main.projects-page { padding: calc(var(--header-height, 59px) + 28px) 16px 40px; }
  .projects-page h1 { margin-bottom: 24px; }
  .projects-grid { --project-gap: 16px; --project-width: calc((100% - var(--project-gap)) / 2); grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .projects-grid.is-masonry .project-tile { margin-bottom: 28px; }
  .project-tile__caption { padding-top: 10px; font-size: 14px; gap: 4px; }
  .project-tile__subtitle { font-size: 12px; }
}
@media(prefers-reduced-motion:reduce) { .project-tile__title,.project-tile__image img { transition: none; } }

body:not(.has-hero) main.about-page { padding: calc(var(--header-height, 59px) + 48px) var(--site-inset) 80px; }
.about-page h1 { margin: 0 0 40px; font-size: clamp(28px, 3vw, 44px); line-height: 1.15; font-weight: 400; letter-spacing: -.035em; }
.about-page__intro,.about-page__cv { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr); gap: 48px; }
.about-page__portrait { margin: 0; max-width: 480px; }
.about-page__portrait img { display: block; width: 100%; height: auto; }
.about-page__contacts { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: 20px; font-size: 14px; line-height: 1.5; }
.about-page a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.about-page a:hover { color: #666; }
.about-page__overview { max-width: 840px; }
.about-page__bio { font-size: 18px; line-height: 1.55; }
.about-page__bio p { margin: 0 0 20px; }
.about-page__bio p:first-child { font-size: clamp(24px, 2.1vw, 32px); line-height: 1.3; letter-spacing: -.025em; margin-bottom: 28px; }
.about-page h2 { margin: 0 0 24px; font-size: 24px; line-height: 1.25; font-weight: 500; letter-spacing: -.02em; }
.about-page__statement { margin-top: 56px; }
.about-page__text { font-size: 18px; line-height: 1.6; }
.about-page__text p { margin: 0 0 20px; }
.about-page__text p:last-child { margin-bottom: 0; }
.about-page__cv { margin-top: 64px; padding-top: 28px; border-top: 1px solid #dedede; }
.about-page__events { list-style: none; padding: 0; margin: 0; max-width: 840px; }
.about-page__event { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 24px; padding: 20px 0; border-bottom: 1px solid #eee; font-size: 16px; line-height: 1.5; }
.about-page__event:first-child { padding-top: 0; }
.about-page__event:last-child { border-bottom: 0; padding-bottom: 0; }
.about-page__year { color: #777; font-size: 14px; padding-top: 2px; }
.about-page__place { margin: 6px 0 0; color: #777; font-size: 14px; }
@media(max-width:767px) {
  body:not(.has-hero) main.about-page { padding: calc(var(--header-height, 59px) + 28px) 16px 48px; }
  .about-page h1 { margin-bottom: 24px; }
  .about-page__intro,.about-page__cv { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .about-page__profile { max-width: 480px; }
  .about-page__contacts { margin-top: 16px; }
  .about-page__bio,.about-page__text { font-size: 16px; line-height: 1.55; }
  .about-page__bio p:first-child { font-size: 24px; margin-bottom: 24px; }
  .about-page__statement { margin-top: 36px; }
  .about-page h2 { font-size: 22px; margin-bottom: 20px; }
  .about-page__cv { margin-top: 40px; padding-top: 24px; gap: 4px; }
  .about-page__event { grid-template-columns: 84px minmax(0, 1fr); gap: 16px; font-size: 15px; padding: 16px 0; }
  .about-page__year,.about-page__place { font-size: 13px; }
}

body:not(.has-hero) main.project-detail { padding: calc(var(--header-height, 59px) + 28px) var(--site-inset) 64px; }
.project-detail>.project-page__back { margin-bottom: 20px; font-size: 14px; }
.project-detail__intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 48px; margin: 12px 0 48px; }
.project-detail h1 { margin: 0; font-size: clamp(30px,3.5vw,52px); line-height: 1.1; font-weight: 400; letter-spacing: -.035em; overflow-wrap: anywhere; }
.project-detail a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.project-detail a:hover { color: #666; }
.project-rich-text { font-size: 18px; line-height: 1.6; overflow-wrap: anywhere; }
.project-rich-text p { margin: 0 0 20px; }
.project-rich-text p:last-child { margin-bottom: 0; }
.project-rich-text ul,.project-rich-text ol { margin: 0 0 20px; padding-left: 24px; }
.project-detail__description { max-width: 840px; }
.project-detail__blocks { display: flex; flex-direction: column; gap: 40px; }
.project-block { margin: 0; min-width: 0; }
.project-block__grid { display: grid; gap: 24px; }
.project-block__item { margin: 0; min-width: 0; }
.project-block__grid--2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.project-block__grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.project-block--horizontalleftverticalright .project-block__grid { grid-template-columns: minmax(0,2fr) minmax(0,1fr); align-items: center; }
.project-block--verticallefthorizontalright .project-block__grid { grid-template-columns: minmax(0,1fr) minmax(0,2fr); align-items: center; }
.project-block__media { min-width: 0; overflow: hidden; background: #f3f3f1; }
.project-block__media>img,.project-block__media>video { display: block; width: 100%; height: auto; }
.project-block__media[style]>img,.project-block__media[style]>video { height: 100%; object-fit: cover; }
.project-block__embed iframe,.project-block__embed video { display: block; width: 100%; height: 100%; border: 0; }
.project-block figcaption { margin-top: 12px; font-size: 16px; line-height: 1.5; color: #333; }
.project-block figcaption p { margin: 0; }
.project-block--text { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 48px; padding: 24px 0; }
.project-block--text>div:only-child { grid-column: 2; }
.project-block--text h2 { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 500; }
.project-page__back--bottom { margin-top: 48px; }
.project-related { margin-top: 64px; }
.project-related__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.project-related__heading h2 { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 400; }
.project-related__heading>a { font-size: 14px; }
.project-related__top { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.project-related__top span:last-child { text-decoration: underline; text-underline-offset: 3px; }
.projects-grid--related { --project-width: calc((100% - 3 * var(--project-gap)) / 4); grid-template-columns: repeat(4,minmax(0,1fr)); }
@media(max-width:767px) {
  .project-related { margin-top: 40px; }
  .project-related__heading { margin-bottom: 20px; }
  .project-related__heading h2 { font-size: 22px; }
  .projects-grid--related { --project-width: calc((100% - var(--project-gap)) / 2); grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.has-hero) main.project-detail { padding: calc(var(--header-height,59px) + 16px) 16px 40px; }
  .project-detail__intro { grid-template-columns: minmax(0,1fr); gap: 28px; margin: 12px 0 28px; }
  .project-rich-text { font-size: 16px; line-height: 1.55; }
  .project-detail__blocks { gap: 24px; }
  .project-block__grid,.project-block--horizontalleftverticalright .project-block__grid,.project-block--verticallefthorizontalright .project-block__grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .project-block--text { grid-template-columns: minmax(0,1fr); gap: 20px; padding: 8px 0; }
  .project-block--text>div:only-child { grid-column: 1; }
  .project-block--text h2 { font-size: 22px; }
  .project-page__back--bottom { margin-top: 32px; }
}

.checkout-page__consent { margin-top: 28px; font-size: 14px; line-height: 1.5; }
.checkout-page__consent label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.checkout-page__consent input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #111; }
.checkout-page__consent input:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.checkout-page__consent input[aria-invalid="true"] { outline: 1px solid #a5281d; outline-offset: 2px; }
.checkout-page__consent a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgb(5 5 5 / 30%); text-underline-offset: 3px; }
.checkout-page__consent a:hover { color: #666; text-decoration-color: currentColor; }

.checkout-page__consent p { margin: 0; }
.checkout-page__consent + .checkout-page__consent { margin-top: 12px; }

.home-works { padding: 64px var(--site-inset) 80px; border-top: 1px solid rgb(5 5 5 / 12%); }
.home-works__header { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.home-works__header h2 { margin: 0; font-size: clamp(26px, 2.5vw, 36px); font-weight: 400; line-height: 1.2; letter-spacing: -.03em; }
.home-works__header a { flex-shrink: 0; color: inherit; font-size: 16px; text-decoration-thickness: 1px; text-decoration-color: rgb(5 5 5 / 30%); text-underline-offset: 4px; }
.home-works__header a:hover { color: #666; text-decoration-color: currentColor; }
@media (max-width: 767px) {
  .home-works { padding: 32px 16px 48px; }
  .home-works__header { gap: 16px; margin-bottom: 24px; }
  .home-works__header a { font-size: 14px; }
}

.home-works__more { display: inline-flex; align-items: baseline; gap: 6px; flex-shrink: 0; font-size: 16px; }
@media (max-width: 767px) { .home-works__more { font-size: 14px; } }

.site-footer { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 48px; padding: 56px var(--site-inset) 40px; }
.site-footer__documents { align-self: end; align-content: end; justify-content: flex-end; }
.footer-signup { max-width: 720px; }
.footer-signup h2 { margin: 0 0 16px; font-size: clamp(24px, 2.2vw, 32px); font-weight: 400; line-height: 1.2; letter-spacing: -.03em; }
.footer-signup__intro { max-width: 520px; margin: 0 0 28px; font-size: 16px; line-height: 1.5; }
.footer-signup__fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; align-items: start; gap: 12px; }
.footer-signup__fields label { min-width: 0; position: relative; }
.footer-signup__fields label > span:first-child { display: block; position: absolute; top: 9px; left: 16px; font-size: 11px; line-height: 16px; color: #666; }
.footer-signup__fields input { display: block; width: 100%; height: 60px; border: 1px solid transparent; border-radius: 0; background: #f1f1ef; padding: 25px 16px 9px; color: inherit; font: inherit; font-size: 16px; }
.footer-signup__fields button { min-height: 60px; padding: 16px 22px; border: 1px solid #111; border-radius: 0; background: #111; color: #fff; font: inherit; font-size: 14px; cursor: pointer; transition: background-color var(--ids__duration-base) var(--ids__easing-base); }
.footer-signup__fields button:hover { background: #333; }
.footer-signup__fields button:disabled { opacity: .6; cursor: wait; }
.footer-signup__fields input:focus-visible, .footer-signup button:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.footer-signup__consent { display: flex; align-items: flex-start; gap: 10px; margin-top: 16px; max-width: 630px; font-size: 12px; line-height: 1.6; color: #666; cursor: pointer; }
.footer-signup__consent input { flex: 0 0 16px; width: 16px; height: 16px; margin: 2px 0 0; accent-color: #111; }
.footer-signup__consent p { margin: 0; }
.footer-signup a { color: inherit; text-decoration-thickness: 1px; text-decoration-color: rgb(5 5 5 / 30%); text-underline-offset: 3px; }
.footer-signup a:hover { color: #111; text-decoration-color: currentColor; }
.footer-signup__error { display: block; margin-top: 6px; color: #a5281d; font-size: 12px; line-height: 1.4; }
.footer-signup__fields input[aria-invalid="true"] { border-color: #b83225; background: #fff1ef; }
.footer-signup__consent input[aria-invalid="true"] { outline: 1px solid #a5281d; outline-offset: 2px; }
.footer-signup__message { margin: 20px 0 0; font-size: 16px; line-height: 1.5; }
.footer-signup__message.is-error { color: #a5281d; font-size: 14px; }
.footer-signup [hidden] { display: none !important; }
.uniform__potty { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 767px) {
  .site-footer { grid-template-columns: minmax(0,1fr); gap: 32px; padding: 32px 16px 28px; }
  .site-footer__documents { justify-content: flex-start; }
  .footer-signup__intro { font-size: 15px; margin-bottom: 24px; }
  .footer-signup__fields { grid-template-columns: minmax(0,1fr); }
  .footer-signup__fields input, .footer-signup__fields button { height: 56px; min-height: 56px; }
}

.site-footer:not(:has(.footer-signup)) { display: block; }
.site-footer:not(:has(.footer-signup)) .site-footer__documents { justify-content: flex-start; }

.site-footer__credits { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px 24px; margin-top: 16px; color: #666; font-size: 13px; line-height: 1.5; }
.site-footer__credits p { margin: 0; }
.site-footer__credits a { color: inherit; text-decoration: underline; text-decoration-color: rgb(5 5 5 / 30%); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.site-footer__credits a:hover { color: var(--ids__text); text-decoration-color: currentColor; }
@media (max-width: 767px) { .site-footer__credits { flex-direction: column; gap: 8px; margin-top: 8px; } }

.technical-page--protected .technical-page__document { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }

.footer-signup__message.is-success { color: #2b733f; }
