:root{--bg: #0a0810;--neon: #bd5cff;--brass: var(--neon);--text: #ede9f2}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;background:var(--bg);color:var(--text);font-family:Geist Mono,monospace;overflow-x:hidden}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:block;z-index:1}#scroll-space{height:2400vh}body.idle,body.idle #scene{cursor:none}#fade{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;background:#000;opacity:0;pointer-events:none}#clip-cap{position:fixed;left:6vw;bottom:14vh;z-index:3;display:flex;flex-direction:column;gap:.4rem;opacity:0;transition:opacity .6s ease;pointer-events:none}#clip-cap.on{opacity:1}#clip-cap h2{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(2.4rem,6vw,4.5rem);color:var(--text);line-height:1}.cap-tag{color:var(--brass);letter-spacing:.3em;font-size:.7rem;text-transform:uppercase}.cap-sub{color:var(--brass);opacity:.8;font-size:.8rem;letter-spacing:.2em}#loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;background:var(--bg);transition:opacity .8s ease}#loader.done{opacity:0;pointer-events:none}.loader-brand{font-family:"Instrument Serif",serif;font-style:italic;font-size:2rem;letter-spacing:.15em;color:var(--brass)}.loader-bar{width:220px;height:2px;background:#f2ead926;overflow:hidden}.loader-bar span{display:block;height:100%;width:0%;background:var(--brass);transition:width .2s ease}.loader-pct{font-size:.72rem;letter-spacing:.3em;opacity:.6}#fallback[hidden]{display:none}#fallback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;padding:2rem;background:linear-gradient(#0a0806d1,#0a0806ed),url(../images/coupes/coupe1.jpg) center / cover no-repeat,var(--bg)}#fallback h1{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(2rem,6vw,3.5rem);color:var(--brass)}#fallback a{margin-top:1rem;padding:.8rem 2rem;border:1px solid var(--brass);color:var(--text);text-decoration:none;letter-spacing:.2em;text-transform:uppercase;font-size:.75rem}.scene-text{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;padding:clamp(1.5rem,5vw,5rem);pointer-events:none;opacity:0;transition:opacity .9s ease;text-shadow:0 1px 3px rgba(0,0,0,.9),0 2px 22px rgba(0,0,0,.55)}.scene-text.on{opacity:1}.scene-text.hero{justify-content:center;align-items:center}.scene-text.services{justify-content:flex-start;align-items:center}.scene-text.salon{justify-content:flex-end;align-items:center}.scene-text.savoir{justify-content:flex-start;align-items:center}.scene-text.reservation{justify-content:center;align-items:center}.st-inner{position:relative;max-width:34rem;display:flex;flex-direction:column;gap:1.1rem;transform:translateY(20px);transition:transform 1.1s cubic-bezier(.16,.84,.3,1)}.scene-text.on .st-inner{transform:translateY(0)}.scene-text.hero .st-inner{align-items:center;text-align:center}.scene-text.salon .st-inner{align-items:flex-end;text-align:right}.scene-text.final3{padding:clamp(1rem,3vw,2.5rem)}.final3-grid{width:100%;height:100%;display:grid;grid-template-columns:32% 1fr 28%;align-items:stretch;gap:clamp(1rem,2.5vw,2.5rem)}.col-gallery{min-width:0;height:100%;display:flex;flex-direction:column;gap:1rem;overflow:hidden}.col-gallery>.eyebrow{flex:0 0 auto;padding-left:.2rem}.col-clipper{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;gap:.3rem;padding-bottom:3vh}.col-clipper .cap-tag{color:var(--brass);font-family:Geist Mono,monospace;letter-spacing:.3em;font-size:.7rem;text-transform:uppercase}.col-clipper .title{font-size:clamp(1.8rem,3.5vw,3rem)}.clip-desc{font-family:Geist Mono,monospace;font-size:clamp(.72rem,1.05vw,.86rem);line-height:1.7;color:#f2ead9cc;max-width:24rem;margin-top:.5rem;text-shadow:0 1px 3px rgba(0,0,0,.9),0 2px 22px rgba(0,0,0,.6)}.col-reservation{display:flex;align-items:center;justify-content:flex-end}.col-reservation .st-inner{align-items:flex-start;text-align:left;max-width:22rem}.coupe-carousel{flex:1 1 auto;width:100%;min-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent)}.carousel-track{display:flex;flex-direction:column;align-items:flex-start;height:max-content;animation:coupeMarquee 34s linear infinite}.coupe-carousel:hover .carousel-track{animation-play-state:paused}.carousel-track img{flex:0 0 auto;width:66%;height:auto;aspect-ratio:2 / 3;object-fit:cover;margin-bottom:1.6rem;border-radius:8px;border:1px solid rgba(190,110,255,.3);box-shadow:0 10px 26px #0000008c;filter:brightness(.85) sepia(.12) contrast(1.05);transition:transform .45s cubic-bezier(.16,.84,.3,1),filter .45s ease,box-shadow .45s ease;pointer-events:none}.carousel-track img:nth-child(odd){align-self:flex-start}.carousel-track img:nth-child(2n){align-self:flex-end}.scene-text.final3.on .carousel-track img{pointer-events:auto}.carousel-track img:hover{transform:scale(1.05);filter:brightness(1.08) sepia(.05) contrast(1.04);box-shadow:0 16px 38px #0000009e}@keyframes coupeMarquee{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@media(prefers-reduced-motion:reduce){.carousel-track{animation:none}}@keyframes coupeMarqueeH{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(max-width:820px){.final3-grid{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;align-content:stretch;gap:.6rem}.col-gallery{height:auto;overflow:hidden}.coupe-carousel{-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}.carousel-track{flex-direction:row;align-items:center;height:auto;width:max-content;animation-name:coupeMarqueeH}.carousel-track img,.carousel-track img:nth-child(odd),.carousel-track img:nth-child(2n){width:auto;height:22vh;margin:0 .7rem 0 0;align-self:center}.coupe-carousel.touch-pause .carousel-track{animation-play-state:paused}.col-clipper{display:flex;justify-content:flex-end;padding-bottom:1vh}.col-clipper .title{font-size:clamp(1.6rem,7vw,2.4rem)}.col-reservation{justify-content:center}.col-reservation .st-inner{align-items:center;text-align:center;max-width:92%}}.st-inner:before{content:"";position:absolute;top:-6%;right:-10%;bottom:-6%;left:-10%;z-index:-1;background:radial-gradient(58% 72% at 50% 50%,#0a080680,#0a080600 72%);pointer-events:none}.eyebrow{font-family:Geist Mono,monospace;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}.title{font-family:"Instrument Serif",serif;font-style:italic;font-weight:400;color:var(--text);line-height:1}.scene-text.hero .title{font-size:clamp(3rem,11vw,8rem)}.scene-text.services .title,.scene-text.salon .title,.scene-text.reservation .title{font-size:clamp(2.2rem,6vw,4rem)}.subtitle{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(1.1rem,2.4vw,1.7rem);color:var(--brass)}.scroll-hint{margin-top:1.4rem;font-family:Geist Mono,monospace;font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:#f2ead980;animation:hintPulse 2.4s ease-in-out infinite}@keyframes hintPulse{0%,to{opacity:.35}50%{opacity:.8}}.body-text{font-family:Geist Mono,monospace;font-size:clamp(.82rem,1.3vw,.95rem);line-height:1.75;color:#f2ead9d1;max-width:30rem}.price-list{list-style:none;display:flex;flex-direction:column;gap:.95rem;font-family:Geist Mono,monospace;width:min(26rem,70vw)}.price-list li{display:flex;align-items:baseline;gap:.9rem;font-size:clamp(.95rem,1.6vw,1.15rem)}.p-name{color:var(--text)}.p-lead{flex:1;border-bottom:1px dotted rgba(190,110,255,.5);transform:translateY(-.25rem)}.p-price{color:var(--brass);letter-spacing:.04em}.info{display:flex;flex-direction:column;gap:1rem;font-family:Geist Mono,monospace}.info dt{font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brass);opacity:.8;margin-bottom:.28rem}.info dd{font-size:.92rem;color:var(--text);line-height:1.5}.book-btn,.book-fixed{font-family:Geist Mono,monospace;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:.85rem 1.9rem;border:1px solid var(--brass);border-radius:2px;pointer-events:auto;transition:background .3s ease,color .3s ease}.book-btn{margin-top:.6rem;background:var(--brass);color:var(--bg)}.book-btn:hover{background:transparent;color:var(--brass)}.book-fixed{position:fixed;top:calc(clamp(.8rem,2.5vw,1.8rem) + env(safe-area-inset-top,0px));right:calc(clamp(.8rem,2.5vw,1.8rem) + env(safe-area-inset-right,0px));z-index:8;color:var(--brass);background:#0a080652;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.book-fixed:hover{background:var(--brass);color:var(--bg)}.scene-text.site-footer{align-items:flex-end;justify-content:center;padding:0}.foot-inner{width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;padding:1.2rem clamp(1.5rem,5vw,5rem);padding-bottom:calc(1.2rem + env(safe-area-inset-bottom,0px));font-family:Geist Mono,monospace;font-size:.62rem;letter-spacing:.1em;color:#f2ead99e}.foot-inner .credit{color:var(--brass);opacity:.75}.coupe-title{position:relative;width:fit-content;max-width:100%}.scene-text.on .title,#clip-cap.on h2{pointer-events:auto}.coupe-word{display:inline-block;white-space:nowrap}.coupe-letter{display:inline-block;will-change:transform}.coupe-blade{position:absolute;left:0;right:0;top:54%;height:2px;border-radius:2px;transform:scaleX(0);opacity:0;pointer-events:none;background:linear-gradient(90deg,#be6eff00,#bd5cff 15%,#e6c6ff,#bd5cff 85%,#be6eff00);box-shadow:0 0 12px #bd5cffe6,0 0 4px #e6c6ffe6}.coupe-particle{position:absolute;width:3px;height:3px;border-radius:50%;background:#bd5cff;box-shadow:0 0 7px #bd5cffd9;pointer-events:none;z-index:2}@media(max-width:640px){.scene-text.services,.scene-text.salon,.scene-text.reservation{justify-content:center}.scene-text.reservation .st-inner{align-items:center;text-align:center}.foot-inner{justify-content:center;text-align:center}}@media(max-width:820px){.scene-text.hero .title{font-size:clamp(3.6rem,16vw,5.2rem)}.scene-text.services .title,.scene-text.salon .title,.scene-text.savoir .title{font-size:clamp(2.8rem,11vw,3.8rem)}.subtitle{font-size:clamp(1.35rem,5.5vw,1.9rem)}.eyebrow{font-size:.84rem}.body-text{font-size:1.08rem;line-height:1.8;max-width:26rem}.price-list li{font-size:1.25rem}.clip-desc{font-size:1rem;line-height:1.75;max-width:88%}.info dt{font-size:.74rem}.info dd{font-size:1.08rem;line-height:1.55}.book-btn{font-size:.9rem}}
