/* Relief et mouvement progressifs : aucune dépendance externe. */
.hero-visual{perspective:1100px;isolation:isolate}
.hero-photo{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translate3d(0,var(--lift,0px),0);transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s;box-shadow:0 15px 40px #0003}
.hero-photo.photo-front{position:relative;z-index:2;box-shadow:-16px 20px 45px #0005}
.hero-photo.is-tilting{transition:transform .12s linear,box-shadow .4s}
.hero-photo img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.hero-photo:focus-visible{outline-offset:-4px}
.hero-caption{z-index:4;background:#282926;align-items:center;padding-block:15px}
.hero-slider-controls{display:flex;align-items:center;gap:14px;direction:ltr}
.hero-slider-controls button{color:var(--paper);background:transparent;border:1px solid #ffffff30;width:30px;height:30px;font-size:15px;transition:background .2s,transform .2s}
.hero-slider-controls button:hover{background:#ffffff13;transform:translateY(-2px)}
#heroSlideCount{font-size:8px;color:#adb49f;min-width:38px;text-align:center;letter-spacing:.12em}
.hero-photo.slide-enter img{animation:slide-image-in .65s cubic-bezier(.2,.7,.2,1) both}
@keyframes slide-image-in{from{opacity:.2;transform:scale(1.055) translateX(10px)}to{opacity:1;transform:scale(1) translateX(0)}}
.product-card{perspective:1000px}
.product-media{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--lift,0px));transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s;box-shadow:0 4px 10px #1c261008}
.product-media.is-tilting{transition:transform .12s linear,box-shadow .3s;box-shadow:0 22px 30px -16px #1c261060}
.product-media:after,.hero-photo:after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at var(--mx,50%) var(--my,40%),#ffffff24,transparent 65%);opacity:0;transition:opacity .45s;mix-blend-mode:screen}
.product-media.is-tilting:after,.hero-photo.is-tilting:after{opacity:1}
.product-media.is-tilting .product-image{transform:scale(1.045)}
.side-toggle{box-shadow:0 5px 14px #0003}
.button{position:relative;overflow:hidden;box-shadow:0 4px 0 #0002,0 9px 18px #0001;transition:transform .25s,box-shadow .25s,background .25s}
.button:hover{transform:translateY(-3px);box-shadow:0 6px 0 #0002,0 16px 25px #0002}
.button:active{transform:translateY(1px);box-shadow:0 1px 0 #0002}
.button:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#ffffff38 50%,transparent 75%);transform:translateX(-130%);transition:transform .8s}
.button:hover:after{transform:translateX(130%)}
.motion-reveal{opacity:1;transform:none}
.motion-reveal.is-pending{opacity:0;transform:translateY(25px)}
.motion-reveal.is-visible{transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1);opacity:1;transform:none}
.hero-copy h1{animation:hero-copy-in .8s cubic-bezier(.2,.7,.2,1) both}
.hero-copy .hero-description{animation:hero-copy-in .85s .1s cubic-bezier(.2,.7,.2,1) both}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
dialog[open]{animation:dialog-in .28s cubic-bezier(.2,.7,.2,1)}
@keyframes dialog-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.footer-wordmark{text-shadow:0 1px 0 #b7bcaf,0 2px 0 #939989,0 3px 0 #727967,0 4px 0 #515a46,0 15px 30px #0005}
@media(hover:none),(pointer:coarse){.hero-photo,.product-media{transform:none!important}.product-media:after,.hero-photo:after{display:none}.product-media{box-shadow:0 7px 15px -10px #0005}.hero-photo.photo-front{box-shadow:-10px 12px 25px #0004}}
@media(max-width:760px){.hero-caption{padding:10px 14px;gap:8px;font-size:7px}.hero-slider-controls{gap:7px}.hero-slider-controls button{width:27px;height:27px}.hero-caption>span:last-child{font-size:7px}.photo-back{margin-bottom:48px}.photo-front{margin-bottom:48px}.footer-wordmark{text-shadow:0 1px 0 #939989,0 2px 0 #727967,0 3px 0 #515a46,0 9px 18px #0005}}
@media(prefers-reduced-motion:reduce){.motion-reveal.is-pending{opacity:1;transform:none}.hero-photo,.product-media,.button{transform:none!important}.product-media:after,.hero-photo:after,.button:after{display:none}*,*:before,*:after{animation:none!important;transition:none!important}}
