:root { --ease-settle: cubic-bezier(.16, 1, .3, 1); }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: page-away .18s ease both; }
::view-transition-new(root) { animation: page-arrive .35s var(--ease-settle) both; }
::view-transition-group(*) { animation-duration: .55s; animation-timing-function: var(--ease-settle); }
@keyframes page-away { to { opacity: 0; } }
@keyframes page-arrive { from { opacity: 0; } to { opacity: 1; } }
button, a.catalog-preview, .pdp-swatch { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button { transition: scale .28s var(--ease-settle), background-color .25s, border-color .25s, color .25s; }
button:active:not(:disabled) { scale: .95; transition-duration: .12s; }
a.catalog-preview:active { scale: .98; }
.catalog-preview { display: block; transition: scale .35s var(--ease-settle); }
.catalog-preview img { translate: var(--peek-x, 0px) var(--peek-y, 0px); transition: transform .8s var(--ease-settle), translate .4s var(--ease-settle); }
.catalog-scene:focus-within { outline: 2px solid #1a1713; outline-offset: 4px; }
.catalog-name { display: inline-flex; align-items: flex-start; min-height: 32px; }
.catalog-name:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.store-nav-links a, .hero-header nav a, .footer-links a, .text-link { position: relative; }
.store-nav-links a::after, .hero-header nav a::after, .footer-links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 7px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .4s var(--ease-settle); }
.store-nav-links a:focus-visible::after, .hero-header nav a:focus-visible::after, .footer-links a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.quick-add::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 18px; opacity: 0; scale: .6; transition: opacity .2s, scale .35s var(--ease-settle); }
.quick-add.is-added { background: #111; border-color: #111; color: #fff; transform: none; }
.quick-add.is-added svg { opacity: 0; }
.quick-add.is-added::after { opacity: 1; scale: 1; }
.quick-add svg { transition: opacity .18s, transform .3s; }
[data-bag-count], [data-product-quantity] { display: inline-block; }
.filter-button { transition: color .25s, background-color .3s, border-color .3s, scale .25s var(--ease-settle); }
.rotation-slot img { transition: opacity .25s, transform .6s var(--ease-settle); }
.rotation-swatch { transition: border-color .25s, scale .3s var(--ease-settle); }
.rotation-swatch[aria-pressed="true"] { scale: 1.06; }
.weave-option > span:last-child { transition: translate .35s var(--ease-settle); }
.weave-option[aria-pressed="true"] > span:last-child { translate: 3px -3px; }
.pdp-swatch { transition: border-color .25s, scale .3s var(--ease-settle); }
.pdp-swatch:active { scale: .91; }
.pdp-add.is-added { background: #2b2823; border-color: #2b2823; }
.pdp-photo { transition: transform .7s var(--ease-settle), transform-origin .18s ease-out; }
.field input { transition: border-color .25s, box-shadow .3s; }
@supports (interpolate-size: allow-keywords) {
  .faq-item, .pdp-accordion { interpolate-size: allow-keywords; }
  .faq-item::details-content, .pdp-accordion::details-content { block-size: 0; overflow: clip; transition: block-size .4s var(--ease-settle), content-visibility .4s allow-discrete; }
  .faq-item[open]::details-content, .pdp-accordion[open]::details-content { block-size: auto; }
}
@media (hover: hover) and (pointer: fine) {
  .store-nav-links a:hover::after, .hero-header nav a:hover::after, .footer-links a:hover::after { transform: scaleX(1); transform-origin: left; }
  .pdp-swatch:hover::before { scale: .88; }
  .pdp-add:hover { background: #34302a; }
  .rotation-swatch:hover { scale: 1.13; }
  .weave-option:hover > span:last-child { translate: 3px -3px; }
}
@media (max-width: 700px) {
  .quick-add { width: 44px; height: 44px; padding: 12px; }
  .rotation-picker { flex-direction: column; align-items: flex-start; gap: 13px; }
  .rotation-swatch { width: 44px; height: 44px; }
  .rotation-swatches { gap: 3px; }
  .pdp-quantity button { width: 44px; }
}
@media (max-width: 360px) { .store-nav { gap: 10px; } .store-nav-links, .store-nav-actions { gap: 10px; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0s !important; transition-duration: 0s !important; scroll-behavior: auto !important; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
  [data-reveal].is-pending { opacity: 1; transform: none; }
}
