/* Ritorno motion: short travel, soft landings, one response per gesture. */
:root{--ease-ritorno:cubic-bezier(.22,1,.36,1);--ease-touch:cubic-bezier(.4,0,.2,1);--motion-touch:180ms;--motion-detail:380ms;--motion-photo:720ms}
html{scrollbar-gutter:stable}
.editorial-image{animation:atelierArrive 2200ms var(--ease-ritorno) both}
.editorial-caption{animation:none}
.editorial-caption>*{animation:editorialArrive 780ms var(--ease-ritorno) both}
.editorial-caption>.eyebrow{animation-delay:100ms}
.editorial-caption>h1{animation-delay:180ms;animation-duration:2400ms;animation-timing-function:cubic-bezier(.25,.1,.25,1)}
.editorial-caption>.intro-copy{animation-delay:270ms}
.editorial-caption>.collection-link{animation-delay:340ms}
.motion-wait{opacity:0;transform:translateY(10px)}
.motion-wait:focus-within{opacity:1;transform:none}
.detail-layout{animation:none}
.card>.photo{transform:none;box-shadow:0 8px 22px -18px #423a2600;transition:transform var(--motion-photo) var(--ease-ritorno),box-shadow var(--motion-photo) var(--ease-ritorno)}
.photo-layer{transition:transform 1100ms var(--ease-ritorno)}
.card>.photo:after{transition:opacity var(--motion-detail) var(--ease-touch),transform 500ms var(--ease-ritorno);transform:translateY(5px)}
.card:focus-visible>.photo:after{opacity:1;transform:none}
.card:active>.photo{transform:scale(.992);transition-duration:var(--motion-touch)}
.gallery-main{transform:none;transition:background-size 820ms var(--ease-ritorno)}
nav a:after{transition:transform 430ms var(--ease-ritorno)}
nav a:focus-visible:after{transform:scaleX(1)}
.collection-link{position:relative;border-bottom-color:#55564a66;transition:color var(--motion-detail) var(--ease-touch)}
.collection-link:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform 500ms var(--ease-ritorno)}
.collection-link:hover:after,.collection-link:focus-visible:after{transform:scaleX(1);transform-origin:left}
button,.collection-link{transition:transform 260ms var(--ease-ritorno),background-color var(--motion-detail) var(--ease-touch),color var(--motion-detail) var(--ease-touch),border-color var(--motion-detail) var(--ease-touch)}
button:active:not(:disabled),.collection-link:active{transform:scale(.985);transition-duration:100ms}
.primary{position:relative;isolation:isolate;overflow:hidden}
.primary:before{content:'';position:absolute;inset:0;background:#233428;z-index:-1;transform:translateX(-102%);transition:transform 520ms var(--ease-ritorno)}
.primary:hover:not(:disabled){background:var(--accent)}
.primary:focus-visible:not(:disabled):before{transform:translateX(0)}
.primary:disabled:before{opacity:0;transform:translateX(0);transition:opacity var(--motion-detail)}
.bag-button span{transition:background-color var(--motion-detail),border-color var(--motion-detail),color var(--motion-detail)}
.bag-button svg{transition:transform 500ms var(--ease-ritorno)}
.filters label{transition:color var(--motion-detail)}
.filters label:focus-within{color:var(--accent)}
select{transition:border-color var(--motion-detail),background-color var(--motion-detail)}
select:focus{border-color:var(--accent);background-color:#38463a05}
.gallery-tabs button{transition:border-color var(--motion-detail),color var(--motion-detail),transform 320ms var(--ease-ritorno)}
.gallery-tabs .photo{transition:transform 600ms var(--ease-ritorno)}
.back,.remove,.footer-top,#reset{transition:color var(--motion-detail),text-decoration-color var(--motion-detail),text-underline-offset var(--motion-detail);text-decoration-color:#68665e88}
.back:hover,.remove:hover,.footer-top:hover,#reset:hover:not(:disabled){text-decoration-color:var(--ink);text-underline-offset:6px}
.info summary:after{transition:transform var(--motion-detail) var(--ease-ritorno),opacity var(--motion-detail)}
.info details[open] summary:after{transform:rotate(180deg)}
dialog[open]{animation:none}
dialog[open]::backdrop{animation:veilArrive 340ms var(--ease-touch) both}
dialog.is-closing::backdrop{animation:veilLeave 210ms var(--ease-touch) both}
.close svg{transition:transform 380ms var(--ease-ritorno)}
.close:hover svg{transform:rotate(90deg)}
#toast{transform:translate(-50%,6px);transition:opacity 260ms var(--ease-touch),transform 480ms var(--ease-ritorno)}
#toast.visible{transform:translate(-50%,0)}
@media(hover:hover) and (pointer:fine){
  .card:hover>.photo{transform:translateY(-3px);box-shadow:0 14px 24px -19px #423a263d}
  .card:hover .photo-layer{transform:scale(1.035)}
  .card:active>.photo{transform:translateY(-1px) scale(.992)}
  .primary:hover:not(:disabled):before{transform:translateX(0)}
  .bag-button:hover svg{transform:translateY(-2px)}
  .gallery-tabs button:hover .photo{transform:scale(.97)}
}
@keyframes editorialArrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes atelierArrive{from{opacity:.8;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
@keyframes veilArrive{from{opacity:0}to{opacity:1}}
@keyframes veilLeave{from{opacity:1}to{opacity:0}}
@media(hover:none){.card .photo-layer{transform:none!important}}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .motion-wait{opacity:1;transform:none}
  .card>.photo,.photo-layer,.gallery-main,.editorial-caption>*,.bag-button svg,.close svg,.gallery-tabs .photo{transform:none!important}
}

/* Quiet feedback on the newer shopping and assistance surfaces. */
.filter-trigger .filter-value{transition:color 280ms var(--ease-touch)}
.filter-option .option-name{transition:transform 280ms var(--ease-ritorno)}
.filter-option .option-check{transition:opacity 200ms var(--ease-touch)}
.filter-chip span{transition:transform 280ms var(--ease-ritorno)}
.checkout-steps li{position:relative;border-bottom-color:transparent!important}
.checkout-steps [aria-current]:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform-origin:left;animation:stepUnderline 440ms var(--ease-ritorno) both}
.checkout-form .primary>span{transition:transform 380ms var(--ease-ritorno)}
.field input,.field textarea{transition:border-color 260ms,background-color 260ms,box-shadow 260ms}
.field input:focus,.field textarea:focus{background:#fffef9;box-shadow:0 0 0 3px #38463a0a}
.checkout-progress{display:flex;align-items:center;gap:10px}
.checkout-progress:before{content:'';flex:none;width:13px;height:13px;border:1.5px solid #f8f7f34d;border-top-color:var(--surface);border-radius:50%;animation:quietTurn 1100ms linear infinite}
.assistance-content summary{transition:color 250ms var(--ease-touch)}
.assistance-content details[open] summary{color:var(--accent)}
@media(hover:hover) and (pointer:fine){
  .filter-brand .filter-option:hover .option-name,.filter-condition .filter-option:hover .option-name{transform:translateX(3px)}
  .filter-chip:hover span{transform:rotate(90deg)}
  .checkout-form .primary:hover:not(:disabled)>span{transform:translateX(4px)}
  .assistance-content summary:hover{color:var(--accent)}
}
@keyframes stepUnderline{from{transform:scaleX(.15);opacity:.3}to{transform:scaleX(1);opacity:1}}
@keyframes quietTurn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .checkout-steps [aria-current]:after,.checkout-progress:before{animation:none}
  .filter-option .option-name,.filter-chip span,.checkout-form .primary>span{transform:none!important;transition:none}
  .field input,.field textarea,.assistance-content summary{transition:none}
}
.catalog-source{display:flex;align-items:center;justify-content:space-between;gap:24px;border-block:1px solid var(--line);padding:18px 0;margin:4px 0 30px}.source-options{display:flex;gap:7px;flex-shrink:0}.source-options button{background:transparent;border:1px solid var(--line);border-radius:20px;padding:10px 16px;font:inherit;font-size:.8125rem;min-height:42px;transition:background 240ms,color 240ms}.source-options [aria-pressed=true]{background:#655246;color:#f8f7f3;border-color:#655246}.catalog-source p{font-size:.8125rem;line-height:1.6;max-width:52ch;margin:0;color:var(--muted)}.grid:has(>.product-card:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr));max-width:1080px;margin-inline:auto}.card>.photo{aspect-ratio:4/5;border-radius:10px 10px 26px 10px}.card .photo-layer{background-size:cover!important}.photo-alt{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;pointer-events:none;transition:opacity 1100ms var(--ease-touch),transform 1400ms var(--ease-ritorno);transform:scale(1.006)}.sample-stamp{position:absolute;top:15px;left:15px;padding:7px 10px;font-size:.6875rem;letter-spacing:.06em;background:#f8f7f3e6;color:#655246;border-radius:4px;pointer-events:none}.gallery-slide>.real-photo{aspect-ratio:3/4}.product-card .brand{font-family:var(--serif);font-size:1.35rem;font-weight:400}.product-intro>h1{font:400 clamp(1.7rem,3vw,2.5rem)/1.12 var(--serif);letter-spacing:-.025em;margin:10px 0 22px}.gallery-tabs button{transition:border-color 300ms,background 300ms}.gallery-tabs button[aria-pressed=true]{background:#e7ddd2}.gallery-controls button{transition:opacity 200ms,color 200ms}.card:focus-visible .photo-alt{opacity:1;transform:scale(1)}
@media(hover:hover) and (pointer:fine){.card:hover .photo-alt{opacity:1;transform:scale(1)}.gallery-controls button:hover:not(:disabled){color:var(--ink)}}
@media(max-width:700px){.catalog-source{display:block;padding:16px 0;margin-bottom:24px}.source-options{margin-bottom:12px}.catalog-source p{max-width:none}.card>.photo{border-radius:7px 7px 18px 7px}.sample-stamp{top:8px;left:8px;padding:5px 7px;font-size:.6rem}.product-card .brand{font-size:1.1rem}}
@media(prefers-reduced-motion:reduce){.photo-alt{transition:none;transform:none}.source-options button,.gallery-tabs button,.gallery-controls button{transition:none}}
