@view-transition {
  navigation: auto;
}

:root {
  --okra-ease-luxury: cubic-bezier(.16, 1, .3, 1);
  --okra-material-duration-fast: 260ms;
  --okra-material-duration-medium: 520ms;
  --okra-material-duration-slow: 900ms;
}

body.okra-shop-wood.is-material-wood,
body.okra-shop-chrome.is-material-chrome {
  --material-bg: #f4ede2;
  --material-products-bg: #efe3d2;
  --material-text: #551912;
  --material-soft-text: rgba(85, 25, 18, .66);
  --material-border: rgba(85, 25, 18, .24);
  --material-border-strong: rgba(85, 25, 18, .42);
  --material-card-text: #49301c;
  --material-card-shadow: rgba(75, 36, 19, .16);
  --material-card-wash: rgba(255, 245, 229, .24);
  --material-indicator: #6f2a1e;
  --material-indicator-soft: rgba(111, 42, 30, .28);
  --material-sweep-a: rgba(255, 246, 232, 0);
  --material-sweep-b: rgba(255, 244, 222, .38);
  --material-sweep-c: rgba(139, 78, 42, .10);
  background-color: var(--material-bg);
  transition:
    background-color var(--okra-material-duration-slow) var(--okra-ease-luxury),
    color var(--okra-material-duration-medium) var(--okra-ease-luxury);
}

body.okra-shop-chrome.is-material-chrome {
  --material-bg: #22211e;
  --material-products-bg: #1f1d1a;
  --material-text: #f1eadf;
  --material-soft-text: rgba(241, 234, 223, .72);
  --material-border: rgba(241, 234, 223, .20);
  --material-border-strong: rgba(241, 234, 223, .38);
  --material-card-text: rgba(241, 234, 223, .88);
  --material-card-shadow: rgba(0, 0, 0, .34);
  --material-card-wash: rgba(226, 230, 228, .12);
  --material-indicator: #f1eadf;
  --material-indicator-soft: rgba(195, 202, 204, .42);
  --material-sweep-a: rgba(235, 239, 238, 0);
  --material-sweep-b: rgba(246, 248, 246, .30);
  --material-sweep-c: rgba(154, 166, 171, .18);
}

body.okra-shop-wood.is-material-morphing-to-chrome,
body.okra-shop-chrome.is-material-morphing-to-chrome {
  --material-bg: #2b2925;
  --material-products-bg: #24221f;
  --material-sweep-a: rgba(235, 239, 238, 0);
  --material-sweep-b: rgba(246, 248, 246, .30);
  --material-sweep-c: rgba(154, 166, 171, .18);
  --material-indicator: #f1eadf;
  --material-indicator-soft: rgba(195, 202, 204, .42);
}

body.okra-shop-wood.is-material-morphing-to-wood,
body.okra-shop-chrome.is-material-morphing-to-wood {
  --material-bg: #efe4d4;
  --material-products-bg: #ead9c2;
  --material-sweep-a: rgba(255, 246, 232, 0);
  --material-sweep-b: rgba(255, 244, 222, .38);
  --material-sweep-c: rgba(139, 78, 42, .10);
  --material-indicator: #6f2a1e;
  --material-indicator-soft: rgba(111, 42, 30, .28);
}

body.is-material-wood,
body.is-material-chrome {
  background-color: var(--material-bg);
}

body.is-material-wood .okra-shop-bg-media,
body.is-material-chrome .okra-shop-bg-media {
  background-color: var(--material-bg);
  transition:
    background-color var(--okra-material-duration-slow) var(--okra-ease-luxury),
    opacity var(--okra-material-duration-medium) var(--okra-ease-luxury);
}

body.is-material-wood .okra-shop-bg-media::before,
body.is-material-chrome .okra-shop-bg-media::before,
body.is-material-wood .okra-shop-bg-media::after,
body.is-material-chrome .okra-shop-bg-media::after {
  transition:
    opacity var(--okra-material-duration-slow) var(--okra-ease-luxury),
    background var(--okra-material-duration-slow) var(--okra-ease-luxury);
}

body.okra-shop-wood.is-material-morphing-to-chrome .okra-shop-bg-media::after {
  opacity: .18;
  background:
    linear-gradient(180deg, rgba(225, 228, 226, .18), rgba(37, 36, 33, .24));
}

body.okra-shop-chrome.is-material-morphing-to-wood .okra-shop-bg-media::before {
  opacity: .18;
}

body.okra-shop-chrome.is-material-morphing-to-wood .okra-shop-bg-media::after {
  opacity: .32;
  background:
    linear-gradient(180deg, rgba(255, 246, 232, .38), rgba(236, 220, 198, .48));
}

body.is-material-wood .okra-shop-shell::before,
body.is-material-chrome .okra-shop-shell::before {
  transition:
    opacity var(--okra-material-duration-slow) var(--okra-ease-luxury),
    background var(--okra-material-duration-slow) var(--okra-ease-luxury);
}

body.is-material-wood .okra-shop-shell::before {
  background:
    radial-gradient(circle at 20% 18%, rgba(255, 255, 255, .30), transparent 28%),
    linear-gradient(180deg, rgba(255, 255, 255, .12), transparent 30%);
}

body.is-material-chrome .okra-shop-shell::before {
  background:
    radial-gradient(circle at 76% 14%, rgba(244, 247, 246, .16), transparent 30%),
    linear-gradient(180deg, rgba(255, 255, 255, .07), transparent 34%);
}

body.is-material-wood .okra-products,
body.is-material-chrome .okra-products {
  background-color: var(--material-products-bg);
  transition:
    background-color var(--okra-material-duration-slow) var(--okra-ease-luxury),
    color var(--okra-material-duration-medium) var(--okra-ease-luxury);
}

body.is-material-morphing-to-chrome .okra-products {
  background-color: #24221f;
}

body.is-material-morphing-to-wood .okra-products {
  background-color: #ead9c2;
}

.okra-products .material-morph-sweep {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: block;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(-120%, 0, 0) skewX(-7deg);
  background:
    linear-gradient(
      90deg,
      var(--material-sweep-a) 0%,
      var(--material-sweep-b) 43%,
      var(--material-sweep-c) 51%,
      var(--material-sweep-a) 68%
    );
  will-change: transform, opacity;
}

body.is-material-transitioning .okra-products .material-morph-sweep {
  animation: okraMaterialSweep var(--okra-material-duration-slow) var(--okra-ease-luxury) both;
}

body.is-material-transitioning .okra-grid {
  pointer-events: none;
}

body.is-material-leaving .okra-grid .card-product {
  opacity: .72;
  transform: translate3d(0, 5px, 0) scale(.992);
}

body.is-material-arriving .okra-grid .card-product {
  animation: okraMaterialCardArrive 680ms var(--okra-ease-luxury) both;
}

body.is-material-arriving .okra-grid .card-product:nth-child(2n) {
  animation-delay: 42ms;
}

body.is-material-arriving .okra-grid .card-product:nth-child(3n) {
  animation-delay: 72ms;
}

.card-product.product-card--wood .card-product-wrapper,
.card-product.product-card--chrome .card-product-wrapper {
  position: relative;
  isolation: isolate;
  transition:
    transform var(--okra-material-duration-medium) var(--okra-ease-luxury),
    opacity var(--okra-material-duration-medium) var(--okra-ease-luxury);
}

.card-product.product-card--wood .image-wrap,
.card-product.product-card--chrome .image-wrap {
  position: relative;
  z-index: 1;
}

.card-product.product-card--wood .card-product-wrapper::before,
.card-product.product-card--chrome .card-product-wrapper::before,
.card-product.product-card--chrome .card-product-wrapper::after {
  content: "";
  position: absolute;
  pointer-events: none;
  transition:
    opacity var(--okra-material-duration-medium) var(--okra-ease-luxury),
    transform var(--okra-material-duration-medium) var(--okra-ease-luxury),
    background var(--okra-material-duration-medium) var(--okra-ease-luxury);
}

.card-product.product-card--wood .card-product-wrapper::before {
  left: 8%;
  right: 8%;
  bottom: 4%;
  height: 28%;
  z-index: 0;
  opacity: .44;
  transform: translate3d(0, 6px, 0) scaleX(.92);
  background:
    radial-gradient(ellipse at center, rgba(92, 46, 24, .18), rgba(92, 46, 24, 0) 68%);
}

.card-product.product-card--chrome .card-product-wrapper::before {
  left: 10%;
  right: 10%;
  bottom: 5%;
  height: 24%;
  z-index: 0;
  opacity: .32;
  transform: translate3d(0, 4px, 0) scaleX(.96);
  background:
    radial-gradient(ellipse at center, rgba(206, 216, 218, .20), rgba(206, 216, 218, 0) 66%);
}

.card-product.product-card--chrome .card-product-wrapper::after {
  left: 13%;
  right: 13%;
  bottom: 9%;
  height: 1px;
  z-index: 2;
  opacity: .42;
  transform: scaleX(.88);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(238, 244, 244, .62), rgba(132, 142, 146, .18), rgba(255, 255, 255, 0));
}

.card-product.product-card--chrome .image-wrap::before {
  content: "";
  position: absolute;
  inset: -7%;
  z-index: 2;
  pointer-events: none;
  opacity: .24;
  transform: translate3d(-4%, 0, 0);
  background:
    linear-gradient(108deg, rgba(255, 255, 255, 0) 36%, rgba(255, 255, 255, .26) 47%, rgba(255, 255, 255, 0) 58%);
  transition:
    opacity var(--okra-material-duration-medium) var(--okra-ease-luxury),
    transform var(--okra-material-duration-medium) var(--okra-ease-luxury);
}

body.is-material-leaving .card-product.product-card--chrome .image-wrap::before,
body.is-material-morphing-to-wood .card-product.product-card--chrome .image-wrap::before {
  opacity: .08;
  transform: translate3d(6%, 0, 0);
}

body.is-material-arriving.is-material-chrome .card-product.product-card--chrome .image-wrap::before {
  animation: okraChromeReflectionSettle 760ms var(--okra-ease-luxury) 90ms both;
}

body.is-material-arriving.is-material-wood .card-product.product-card--wood .card-product-wrapper::before {
  animation: okraWoodWarmthSettle 760ms var(--okra-ease-luxury) 80ms both;
}

.card-product.product-card--wood .card-product-info::before,
.card-product.product-card--chrome .card-product-info::before {
  transition:
    background var(--okra-material-duration-medium) var(--okra-ease-luxury),
    opacity var(--okra-material-duration-medium) var(--okra-ease-luxury);
}

.card-product.product-card--wood .card-product-info::before {
  background: rgba(85, 25, 18, .25);
}

.card-product.product-card--chrome .card-product-info::before {
  background: rgba(241, 234, 223, .28);
}

.material-switcher {
  position: relative;
  isolation: isolate;
}

.material-switcher .okra-filter-link,
.material-switcher__link {
  position: relative;
  z-index: 1;
}

.material-switcher .okra-filter-link::after {
  opacity: 0 !important;
}

.material-switcher__indicator {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 0;
  width: var(--material-switcher-indicator-width, 2.4rem);
  height: 1px;
  opacity: .94;
  pointer-events: none;
  transform: translate3d(var(--material-switcher-indicator-left, 0px), 0, 0);
  transform-origin: left center;
  background:
    linear-gradient(90deg, var(--material-indicator-soft), var(--material-indicator), var(--material-indicator-soft));
  transition:
    transform 420ms var(--okra-ease-luxury),
    width 420ms var(--okra-ease-luxury),
    background var(--okra-material-duration-medium) var(--okra-ease-luxury),
    opacity var(--okra-material-duration-fast) ease;
}

.material-switcher__indicator::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 3px;
  height: 3px;
  background: var(--material-indicator);
  transform: translate(-50%, -50%) rotate(45deg);
  transition: background var(--okra-material-duration-medium) var(--okra-ease-luxury);
}

.material-switcher .okra-filter-link:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 7px;
}

body.is-material-transitioning .material-switcher__indicator {
  opacity: 1;
}

body.is-material-transitioning .okra-title,
html.okra-material-morph-pending .okra-title {
  view-transition-name: okra-material-heading;
}

body.is-material-transitioning .okra-filter-left,
html.okra-material-morph-pending .okra-filter-left {
  view-transition-name: okra-material-switcher;
}

body.is-material-transitioning .okra-grid,
html.okra-material-morph-pending .okra-grid {
  view-transition-name: okra-product-grid;
}

body.is-material-transitioning .okra-shop-bg-media,
html.okra-material-morph-pending .okra-shop-bg-media {
  view-transition-name: okra-material-visual;
}

::view-transition-group(okra-material-heading),
::view-transition-group(okra-material-switcher),
::view-transition-group(okra-product-grid),
::view-transition-group(okra-material-visual) {
  animation-duration: 720ms;
  animation-timing-function: var(--okra-ease-luxury);
}

::view-transition-old(okra-product-grid) {
  animation-name: okraMaterialGridOut;
}

::view-transition-new(okra-product-grid) {
  animation-name: okraMaterialGridIn;
}

::view-transition-old(okra-material-visual),
::view-transition-new(okra-material-visual) {
  animation-duration: 860ms;
}

::view-transition-old(okra-material-heading),
::view-transition-new(okra-material-heading),
::view-transition-old(okra-material-switcher),
::view-transition-new(okra-material-switcher) {
  animation-duration: 520ms;
}

@keyframes okraMaterialSweep {
  0% {
    opacity: 0;
    transform: translate3d(-120%, 0, 0) skewX(-7deg);
  }
  18% {
    opacity: .78;
  }
  72% {
    opacity: .62;
  }
  100% {
    opacity: 0;
    transform: translate3d(120%, 0, 0) skewX(-7deg);
  }
}

/* Chrome shop cards: remove decorative shine/glow layers from product visuals. */
.card-product.product-card--chrome .card-product-wrapper::before,
.card-product.product-card--chrome .card-product-wrapper::after,
.card-product.product-card--chrome .image-wrap::before {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: none !important;
  animation: none !important;
  transition: none !important;
  transform: none !important;
}

@keyframes okraMaterialCardArrive {
  0% {
    opacity: .12;
    transform: translate3d(0, 7px, 0) scale(.992);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes okraChromeReflectionSettle {
  0% {
    opacity: 0;
    transform: translate3d(-18%, 0, 0);
  }
  100% {
    opacity: .24;
    transform: translate3d(-4%, 0, 0);
  }
}

@keyframes okraWoodWarmthSettle {
  0% {
    opacity: .16;
    transform: translate3d(0, 9px, 0) scaleX(.86);
  }
  100% {
    opacity: .44;
    transform: translate3d(0, 6px, 0) scaleX(.92);
  }
}

@keyframes okraMaterialGridOut {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
  100% {
    opacity: .64;
    transform: translate3d(0, 5px, 0) scale(.992);
  }
}

@keyframes okraMaterialGridIn {
  0% {
    opacity: .20;
    transform: translate3d(0, 7px, 0) scale(.994);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@media (max-width: 640px) {
  body.is-material-arriving .okra-grid .card-product:nth-child(n) {
    animation-delay: 0ms;
  }

  .okra-products .material-morph-sweep {
    transform: translate3d(-112%, 0, 0) skewX(-5deg);
  }

  body.is-material-transitioning .okra-products .material-morph-sweep {
    animation-duration: 620ms;
  }

  body.is-material-leaving .okra-grid .card-product {
    transform: translate3d(0, 3px, 0) scale(.996);
  }

  .card-product.product-card--chrome .image-wrap::before {
    opacity: .16;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.is-material-transitioning .okra-products .material-morph-sweep,
  body.is-material-arriving .okra-grid .card-product,
  body.is-material-arriving.is-material-chrome .card-product.product-card--chrome .image-wrap::before,
  body.is-material-arriving.is-material-wood .card-product.product-card--wood .card-product-wrapper::before {
    animation: none !important;
  }

  .okra-products .material-morph-sweep {
    opacity: 0 !important;
  }

  body.is-material-leaving .okra-grid .card-product,
  body.is-material-arriving .okra-grid .card-product {
    opacity: 1;
    transform: none;
  }

  .material-switcher__indicator,
  .card-product.product-card--wood .card-product-wrapper,
  .card-product.product-card--chrome .card-product-wrapper,
  .card-product.product-card--chrome .image-wrap::before {
    transition-duration: 1ms !important;
  }

  ::view-transition-group(okra-material-heading),
  ::view-transition-group(okra-material-switcher),
  ::view-transition-group(okra-product-grid),
  ::view-transition-group(okra-material-visual),
  ::view-transition-old(okra-material-heading),
  ::view-transition-new(okra-material-heading),
  ::view-transition-old(okra-material-switcher),
  ::view-transition-new(okra-material-switcher),
  ::view-transition-old(okra-product-grid),
  ::view-transition-new(okra-product-grid),
  ::view-transition-old(okra-material-visual),
  ::view-transition-new(okra-material-visual) {
    animation-duration: 1ms !important;
    animation-delay: 0ms !important;
  }
}
