/* Motion is enhancement only: reduced-motion users retain every control. */
@media(prefers-reduced-motion:no-preference){
  .motion-reveal{opacity:0;translate:0 24px;filter:blur(3px);transition:opacity .75s ease,translate .85s cubic-bezier(.2,.8,.2,1),filter .75s ease;transition-delay:var(--reveal-delay,0ms)}
  .motion-reveal.is-visible{opacity:1;translate:0 0;filter:blur(0)}
  .catalog-card,.product-card{will-change:transform;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,background .3s}
  .catalog-card:hover,.product-card:hover{transform:perspective(900px) translateY(-7px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));box-shadow:0 20px 40px #1d2a3312;background:#f0f0ed}
  .catalog-card:after,.product-card:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(250px circle at var(--pointer-x,50%) var(--pointer-y,50%),#ffffffa8,transparent 65%);opacity:0;transition:opacity .4s}
  .catalog-card:hover:after,.product-card:hover:after{opacity:.75}
  .catalog-card>*{position:relative;z-index:1}.catalog-card>.round-arrow{position:absolute}
  .catalog-card .catalog-art{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
  .catalog-card:hover .catalog-art{transform:scale(.86) rotate(-3deg)}
  .round-arrow{transition:background .25s,color .25s,transform .3s}
  .catalog-card:hover .round-arrow,.product-card:hover .round-arrow{background:#1c272e;color:white;transform:rotate(-35deg)}
  .pill{position:relative;overflow:hidden;isolation:isolate;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,background .3s}
  .pill:before{content:'';position:absolute;inset:-100% -70%;pointer-events:none;z-index:-1;background:linear-gradient(110deg,transparent 37%,#ffffff2e 48%,transparent 59%);transform:translateX(-60%);transition:transform .75s}
  .pill:hover:before{transform:translateX(60%)}
  .pill:hover{transform:translateY(-3px);box-shadow:0 9px 24px #1c272e19}
  .pill span{transition:transform .3s}.pill:hover span{transform:translateX(5px)}
  .gallery-main{transition:box-shadow .5s,background .5s}
  .gallery-main:hover{box-shadow:inset 0 0 100px #d6d2ca38,0 16px 40px #16242b0b}
  .gallery-main>.catalog-art,.gallery-main>.gallery-art{transition:transform .65s cubic-bezier(.2,.8,.2,1)}
  .gallery-main:hover>.catalog-art,.gallery-main:hover>.gallery-art{transform:scale(1.035) rotate(-1deg)}
  .gallery-thumb{transition:border-color .3s,transform .3s,box-shadow .3s}
  .gallery-thumb:hover{transform:translateY(-3px);box-shadow:0 7px 18px #18242d10}
  .gallery-thumb[aria-pressed=true]{box-shadow:0 0 0 2px #25343c15}
  .category-row{transition:background .3s,color .3s,translate .3s}
  .category-row:hover{translate:4px 0}.category-row.active .category-art{animation:icon-arrive .45s ease both}
  .bag-tab{transition:background .3s,box-shadow .3s,translate .3s}.bag-tab:hover{translate:5px 0;box-shadow:0 5px 18px #1c272e06}
  .hotspot .tag{transition:transform .3s,box-shadow .3s}.hotspot:hover .tag{transform:translateX(4px);box-shadow:0 7px 22px #17202716}
  .contact-photo{transition:scale 1.4s cubic-bezier(.2,.8,.2,1)}.contact-banner:hover .contact-photo{scale:1.04}
  .download-link{transition:background .3s,border-color .3s,translate .3s}.download-link:hover{background:#f1efeb;translate:0 -2px}
  .click-ripple{position:absolute;width:18px;height:18px;border-radius:50%;background:currentColor;opacity:.18;pointer-events:none;z-index:3;animation:ripple-out .65s ease-out forwards}
  dialog[open]{animation:dialog-arrive .3s cubic-bezier(.2,.8,.2,1)}
  dialog[open]::backdrop{animation:backdrop-arrive .3s ease}
  .reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:100;background:#53605f;transform:scaleX(0);transform-origin:left;pointer-events:none;opacity:.65}
  @keyframes icon-arrive{from{transform:scale(.75) rotate(-8deg)}to{transform:scale(1) rotate(0)}}
  @keyframes ripple-out{to{transform:scale(14);opacity:0}}
  @keyframes dialog-arrive{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
  @keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
}
@media(prefers-reduced-motion:reduce){.motion-reveal{opacity:1;translate:none;filter:none}.reading-progress,.click-ripple{display:none}}

@media(prefers-reduced-motion:no-preference){
  .motion-pending{opacity:0}
  html{overflow-x:clip}
  .showroom-scene{height:142svh;min-height:1022px;position:relative}
  .showroom-scene>.hero{position:sticky;top:0;max-height:none}
  .cinematic-home .hero .bag-stage{translate:0 var(--scene-lift,0px);scale:var(--scene-scale,1);opacity:var(--scene-fade,1);filter:blur(var(--scene-blur,0px))}
  .cinematic-home .hero .hero-copy{translate:0 calc(var(--scene-lift,0px) * .6);opacity:var(--scene-fade,1)}
  .cinematic-home .hero .bag-tabs{opacity:var(--scene-fade,1)}
  .cinematic-home #parts{position:relative;z-index:4;background:#fff;padding-top:80px;border-radius:28px 28px 0 0;margin-top:-24px;box-shadow:0 -32px 50px #fff}
  .hero-opening .bag-stage:before,.hero-opening .bag-stage:after{animation:floor-arrive 1.6s cubic-bezier(.16,1,.3,1) .3s backwards}
  .hero-opening .hero-note{animation:note-arrive 1.2s ease 1.1s backwards}
  .scroll-cue span{animation:scroll-invite 2.2s ease-in-out 2s infinite}
  .contact-banner .eyebrow,.contact-banner h2,.contact-banner p,.contact-banner .pill{transition:translate .6s cubic-bezier(.16,1,.3,1)}
  .contact-banner:hover h2{translate:8px 0}.contact-banner:hover .eyebrow{translate:4px 0}
  .contact-banner:hover .pill{translate:6px 0}
  .catalog-hero{animation:catalog-pan 1.7s cubic-bezier(.16,1,.3,1) both}
  ::view-transition-old(root){animation:page-leave .38s cubic-bezier(.4,0,1,1) both}
  ::view-transition-new(root){animation:page-enter .72s cubic-bezier(.16,1,.3,1) both}
  @keyframes floor-arrive{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
  @keyframes note-arrive{from{opacity:0;clip-path:inset(100% 0 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
  @keyframes scroll-invite{0%,100%{translate:0 0}50%{translate:0 7px}}
  @keyframes catalog-pan{from{background-position:54% 52%;filter:brightness(1.12)}to{background-position:50% 50%;filter:brightness(1)}}
  @keyframes page-leave{to{opacity:0;transform:translateY(-28px) scale(.985);filter:blur(3px)}}
  @keyframes page-enter{from{opacity:0;clip-path:inset(5% 0 0 0);transform:translateY(32px)}to{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0)}}
}
@media(max-width:1000px){.showroom-scene{height:auto;min-height:0}.showroom-scene>.hero{position:relative}.cinematic-home .hero .bag-stage,.cinematic-home .hero .hero-copy{translate:none;scale:1;opacity:1;filter:none}.cinematic-home .hero .bag-tabs{opacity:1}.cinematic-home #parts{margin-top:0;border-radius:0;box-shadow:none;padding-top:45px}}
@media(prefers-reduced-motion:reduce){.motion-pending{opacity:1}::view-transition-old(root),::view-transition-new(root){animation:none}}

@media(prefers-reduced-motion:no-preference){
.page-transition-curtain{position:fixed;inset:0;z-index:1000;background:linear-gradient(110deg,#f4f2ee,#e8e4de);pointer-events:none;transform:translateX(0);animation:curtain-reveal .7s cubic-bezier(.76,0,.24,1) .06s both}
body.page-exit .page-transition-curtain{animation:curtain-close .32s cubic-bezier(.76,0,.24,1) both}
body:not(.page-exit) .page-transition-curtain{pointer-events:none}
@keyframes curtain-close{from{transform:translateX(-102%)}to{transform:translateX(0)}}
@keyframes curtain-reveal{from{transform:translateX(0)}to{transform:translateX(102%)}}
}
@media(prefers-reduced-motion:reduce){.page-transition-curtain{display:none}}
