@font-face{font-family:"Fraunces";
  src:url("fonts/fraunces-latin-italic.woff2") format("woff2");
  font-weight:300 900; font-style:italic; font-display:swap;}
:root{--encre: #0E0E0D; --papier: #F2EFE9; --gris: #8e8e93; --gris-bas:#737379; --rouge: #E0452B; --rouge-p: #C8321A; --serif: "Fraunces", Georgia, "Times New Roman", serif; --trait: rgba(255,255,255,.14); --trait-f: rgba(255,255,255,.30); --voile: rgba(255,255,255,.045); --display: "Segoe UI Variable Display", "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif; --mono: ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Mono", Consolas, "Liberation Mono", Menlo, monospace; --geant: clamp(3rem, 12vw, 11rem); --display1: clamp(2.1rem, 5.4vw, 4.6rem); --display2: clamp(1.3rem, 2.1vw, 1.7rem); --corps: 1.0625rem; --petit: 0.9375rem; --mini: 0.6875rem; --serre: -.045em; --caps: .14em; --section: clamp(80px, 11vw, 168px); --large: 1400px; --gouttiere: clamp(18px, 3.4vw, 40px); --barre: 44px; --duree: .85s; --court: .28s; --courbe: cubic-bezier(.22,1,.36,1);}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{margin:0; background:var(--encre); color:var(--papier); font-family:var(--display); font-size:var(--corps); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img,video,svg{display:block; max-width:100%}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4{margin:0; font-weight:700; line-height:.94; letter-spacing:var(--serre)}
p{margin:0 0 1.15em}
ul{margin:0; padding:0; list-style:none}
:focus-visible{outline:2px solid var(--papier); outline-offset:3px}
::selection{background:var(--papier); color:var(--encre)}
.large{max-width:var(--large); margin:0 auto; padding:0 var(--gouttiere)}
.section{padding:var(--section) 0; position:relative}
.caps{font-family:var(--mono); font-size:var(--mini); letter-spacing:var(--caps); text-transform:uppercase; color:var(--gris); margin:0 0 24px; font-weight:400;}
.titre{font-size:var(--display1)}
.chapo{color:var(--gris); max-width:56ch}
.grille-fond{position:absolute; inset:0; z-index:0; pointer-events:none; max-width:var(--large); margin:0 auto; padding:0 var(--gouttiere); display:grid; grid-template-columns:repeat(4,1fr);}
.grille-fond span{border-left:1px solid var(--trait); position:relative}
.grille-fond span:last-child{border-right:1px solid var(--trait)}
.grille-fond span::after{content:attr(data-n); position:absolute; top:96px; left:10px; font-family:var(--mono); font-size:var(--mini); color:var(--gris-bas);}
@media (max-width:720px){.grille-fond{grid-template-columns:repeat(2,1fr)}}
.btn{display:inline-flex; align-items:center; gap:10px; padding:15px 24px; border:1px solid var(--papier); font-family:var(--mono); font-size:var(--mini); letter-spacing:var(--caps); text-transform:uppercase; cursor:pointer; background:none; color:var(--papier); transition:background var(--court) var(--courbe), color var(--court) var(--courbe);}
.btn svg{width:15px; height:15px; transition:transform var(--court) var(--courbe)}
.btn:hover svg{transform:translateX(4px)}
.btn--plein{background:var(--papier); color:var(--encre)}
.btn--plein:hover{background:var(--rouge); border-color:var(--rouge); color:var(--encre)}
.btn--fil:hover{background:var(--papier); color:var(--encre)}
.entete{position:fixed; top:0; left:0; right:0; z-index:100; padding:16px 0; border-bottom:1px solid transparent; transition:background-color var(--court), border-color var(--court);}
.entete--posee{background:rgba(14,14,13,.9); backdrop-filter:blur(14px); border-bottom-color:var(--trait);}
.entete__interieur{display:flex; align-items:center; gap:26px}
.marque{font-family:var(--display); font-weight:700; letter-spacing:-.02em; font-size:1.05rem;}
.menu{margin-left:auto; display:flex; align-items:center; gap:24px}
.menu a{font-family:var(--mono); font-size:var(--mini); letter-spacing:var(--caps); text-transform:uppercase; color:var(--gris); transition:color var(--court);}
.menu a:hover{color:var(--papier)}
.declic{display:none; margin-left:auto; background:none; border:0; cursor:pointer; width:30px; height:18px; position:relative; padding:0; color:inherit;}
.declic span{position:absolute; left:0; right:0; height:1.5px; background:currentColor; transition:transform var(--court) var(--courbe);}
.declic span:nth-child(1){top:2px}
.declic span:nth-child(2){bottom:2px}
.declic[aria-expanded="true"] span:nth-child(1){top:8px; transform:rotate(45deg)}
.declic[aria-expanded="true"] span:nth-child(2){bottom:8px; transform:rotate(-45deg)}
.etat{position:sticky; top:0; z-index:90; height:var(--barre); display:flex; align-items:center; border-top:1px solid var(--trait); border-bottom:1px solid var(--trait); background:var(--encre); font-family:var(--mono); font-size:var(--mini); letter-spacing:.1em; text-transform:uppercase; color:var(--gris);}
.etat__interieur{display:flex; align-items:center; gap:20px; width:100%; max-width:var(--large); margin:0 auto; padding:0 var(--gouttiere)}
.etat__pastille{width:6px; height:6px; border-radius:50%; background:var(--rouge); animation:pouls 2.4s infinite; flex-shrink:0;}
@keyframes pouls{0%,100%{opacity:1} 50%{opacity:.25}}
.etat__droite{margin-left:auto}
.heros{position:relative; padding:clamp(120px,15vh,170px) 0 clamp(50px,6vw,80px); overflow:hidden}
.heros__contenu{position:relative; z-index:1}
.heros h1{font-size:var(--geant); font-weight:800; letter-spacing:var(--serre); line-height:.86; margin:0 0 clamp(28px,3.4vw,46px); display:flex; align-items:center; flex-wrap:wrap; gap:0; text-transform:uppercase;}
.incruste{display:inline-block; vertical-align:middle; width:.98em; height:.68em; margin:0 .04em; overflow:hidden; flex-shrink:0; border:1px solid var(--trait-f);}
.incruste img{width:100%; height:100%; object-fit:cover; object-position:74% 16%; transform:scale(2.1); transition:transform 1.2s var(--courbe);}
.heros:hover .incruste img{transform:scale(1.06)}
.definition{display:flex; flex-wrap:wrap; gap:4px 14px; margin:0 0 clamp(26px,3vw,40px); font-family:var(--mono); font-size:var(--mini); letter-spacing:.06em; color:var(--gris)}
.definition__mot{font-family:var(--serif); font-style:italic; font-size:1.05rem; letter-spacing:0; color:var(--papier)}
.tampon{position:absolute; right:var(--gouttiere); top:-6px; z-index:2; width:clamp(84px,9vw,124px); height:auto; color:var(--rouge); transform:rotate(-14deg); opacity:.95; pointer-events:none;}
.tampon text{fill:currentColor; font:700 10.5px var(--mono); letter-spacing:.04em}
.tampon .tampon__centre{font:700 17px var(--display); letter-spacing:-.02em}
.rature{position:relative; display:inline-block; white-space:nowrap; text-decoration:none; color:var(--gris); font-weight:500}
.rature svg{position:absolute; left:-3%; top:14%; width:106%; height:74%; overflow:visible}
.rature path{fill:none; stroke:var(--rouge); stroke-width:3.5; stroke-linecap:round; vector-effect:non-scaling-stroke; stroke-dasharray:2000; stroke-dashoffset:2000}
.vu .rature path{animation:trace .55s var(--courbe) .5s forwards}
.vu .rature path + path{animation-delay:.75s}
@keyframes trace{to{ stroke-dashoffset:0 }}
.correction{display:inline-block; text-decoration:none; font-family:var(--serif); font-style:italic; font-weight:400; color:var(--rouge); letter-spacing:-.01em}
.titre em,.final h2 em,.detail h3 em{font-family:var(--serif); font-style:italic; font-weight:400; color:var(--rouge); letter-spacing:-.02em; text-transform:none}
.heros__dire{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,64px); border-top:1px solid var(--trait); padding-top:clamp(24px,3vw,38px);}
.heros__promesse{font-size:clamp(1.7rem,3.2vw,2.8rem); font-weight:700; letter-spacing:-.035em; line-height:1.08; margin:0}
.heros__promesse .correction{font-size:1.12em}
.heros__detail{color:var(--gris); margin:0; max-width:44ch}
.heros__actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(26px,3vw,38px)}
.socle{margin-top:clamp(44px,6vw,74px); display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--trait);}
.grille{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}
.carte{padding:clamp(26px,2.8vw,38px); border-top:1px solid var(--trait); border-left:1px solid var(--trait); display:flex; flex-direction:column; gap:12px; position:relative; transition:background var(--court) var(--courbe);}
.grille .carte:last-child{border-right:1px solid var(--trait)}
.grille{border-bottom:1px solid var(--trait)}
.carte:hover{background:var(--voile)}
.carte h3{font-size:var(--display2); font-weight:700}
.carte p{color:var(--gris); font-size:var(--petit); margin:0}
.carrousel{position:relative}
.carrousel__piste{display:flex; gap:14px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none; padding-bottom:4px;}
.carrousel__piste::-webkit-scrollbar{display:none}
.vignette{flex:0 0 clamp(230px, 27vw, 330px); scroll-snap-align:start; display:flex; flex-direction:column; background:none; border:1px solid var(--trait); color:inherit; font:inherit; text-align:left; padding:0; cursor:pointer; transition:border-color var(--court) var(--courbe), background var(--court) var(--courbe);}
.vignette:hover{border-color:var(--trait-f)}
.vignette.est-active{border-color:var(--papier)}
.vignette.est-active{box-shadow:inset 0 -2px 0 var(--rouge)}
.carrousel__compteur{font-family:var(--mono); font-size:var(--mini); letter-spacing:.14em; color:var(--gris);}
.carrousel__fleche{width:40px; height:40px; display:grid; place-items:center; background:none; border:1px solid var(--trait); color:var(--papier); cursor:pointer; transition:background var(--court), color var(--court), border-color var(--court);}
.carrousel__fleche:hover:not(:disabled){background:var(--papier); color:var(--encre); border-color:var(--papier)}
.carrousel__fleche:disabled{opacity:.3; cursor:default}
.carrousel__fleche svg{width:16px; height:16px}
.detail{display:grid; grid-template-columns:1.35fr 1fr; gap:clamp(24px,3.4vw,52px); align-items:start; margin-top:clamp(28px,3.4vw,44px); padding-top:clamp(28px,3.4vw,44px); border-top:1px solid var(--trait);}
.detail[hidden]{display:none}
.detail h3{font-size:var(--display1); font-weight:700; margin-bottom:16px; line-height:.96}
.detail p{color:var(--gris); font-size:var(--petit)}
.travail__barre{display:flex; align-items:center; gap:7px; padding:9px 12px; border-bottom:1px solid var(--trait);}
.travail__pastille{width:7px; height:7px; border-radius:50%; border:1px solid var(--gris-bas); flex-shrink:0}
.travail__url{font-family:var(--mono); font-size:var(--mini); color:var(--gris-bas); margin-left:8px}
.prix{display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--trait)}
.prix{border:0; gap:clamp(40px,5vw,72px); align-items:start}
.ticket{max-width:440px; width:100%; justify-self:center}
.ticket__ombre{filter:drop-shadow(0 24px 30px rgba(0,0,0,.6)); transform:rotate(-1.2deg)}
.ticket__papier{--dent:16px; background:var(--papier); color:var(--encre); font-family:var(--mono); font-size:.86rem; line-height:1.5; padding:34px 28px calc(var(--dent) + 30px); -webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/var(--dent) 100%; mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/var(--dent) 100%;}
.ticket__entete{text-align:center; font-weight:700; font-size:1.15rem; letter-spacing:.2em; padding-bottom:18px; border-bottom:1.5px dashed var(--encre); margin-bottom:18px}
.ticket__entete span{display:block; font-weight:400; font-size:.72rem; letter-spacing:.06em; color:#55524c; margin-top:6px}
.ticket__lignes{display:grid; gap:10px; margin-bottom:18px}
.ticket__lignes li{display:flex; align-items:baseline; gap:8px}
.ticket__lignes li span{flex:1}
.ticket__lignes li b{text-transform:uppercase; font-size:.72rem; letter-spacing:.08em}
.ticket__total{display:flex; justify-content:space-between; align-items:baseline; border-top:1.5px dashed var(--encre); border-bottom:1.5px dashed var(--encre); padding:14px 0; margin-bottom:14px; font-weight:700; text-transform:uppercase; letter-spacing:.1em}
.ticket__total strong{font-size:1.9rem; letter-spacing:-.02em; color:var(--rouge-p)}
.ticket__merci{text-align:center; font-style:italic; font-size:.78rem; color:#55524c; margin:22px 0 12px}
.ticket__code{height:40px; width:72%; margin:0 auto; background:repeating-linear-gradient(90deg, var(--encre) 0 2px, transparent 2px 4px, var(--encre) 4px 5px, transparent 5px 8px, var(--encre) 8px 11px, transparent 11px 12px, var(--encre) 12px 13px, transparent 13px 17px)}
.ticket .trou{border-color:var(--rouge-p); color:var(--rouge-p); background:rgba(200,50,26,.06)}
.mot{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,6vw,96px); align-items:center}
.mot blockquote{margin:0}
.mot blockquote p{font-size:clamp(1.3rem,2.2vw,1.85rem); font-weight:600; line-height:1.3; letter-spacing:-.02em}
@media (max-width:900px){.mot{grid-template-columns:1fr}}
.etapes{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
.etape{padding:26px clamp(18px,2vw,28px) 30px 0; border-top:1px solid var(--trait)}
.etape__num{font-family:var(--mono); font-size:var(--mini); color:var(--gris-bas); letter-spacing:.14em}
.etape h3{font-size:1.0625rem; font-weight:700; margin:12px 0 8px}
.etape p{color:var(--gris); font-size:var(--petit); margin:0}
.questions{border-top:1px solid var(--trait)}
.question{border-bottom:1px solid var(--trait)}
.question__bouton{width:100%; background:none; border:0; cursor:pointer; color:inherit; font:inherit; text-align:left; padding:26px 0; display:flex; align-items:center; gap:20px; list-style:none;}
.question__bouton::-webkit-details-marker{display:none}
.question__titre{flex:1; font-size:1.125rem; font-weight:700; letter-spacing:-.02em}
.question__signe{width:20px; height:20px; flex-shrink:0; position:relative}
.question__signe::before,.question__signe::after{content:""; position:absolute; left:50%; top:50%; background:currentColor; transform:translate(-50%,-50%); transition:transform var(--court) var(--courbe);}
.question__signe::before{width:14px; height:1.5px}
.question__signe::after{width:1.5px; height:14px}
.question[open] .question__signe::after{transform:translate(-50%,-50%) scaleY(0)}
.question__reponse{padding:0 46px 28px 0; color:var(--gris); font-size:var(--petit)}
.question__reponse p:last-child{margin-bottom:0}
.final{border-top:1px solid var(--trait); padding:clamp(70px,9vw,130px) 0; overflow:hidden}
.final h2{font-size:clamp(2.4rem,9vw,7rem); font-weight:800; letter-spacing:var(--serre); line-height:.9; text-transform:uppercase; margin:0 0 clamp(26px,3vw,42px); white-space:nowrap;}
.final__actions{display:flex; flex-wrap:wrap; gap:12px}
.pied{border-top:1px solid var(--trait); padding:34px 0 30px}
.pied__interieur{display:flex; flex-wrap:wrap; gap:16px 34px; align-items:center; font-family:var(--mono); font-size:var(--mini); letter-spacing:.06em; color:var(--gris)}
.pied a{color:var(--gris)}
.pied a:hover{color:var(--papier)}
.pied__legal{margin-left:auto}
.entete{height:60px; padding:0; display:flex; align-items:center}
.entete__interieur{width:100%}
.etat{top:60px}
.trou{display:inline; -webkit-box-decoration-break:clone; box-decoration-break:clone; padding:1px 8px 2px; border:1px dashed var(--papier); background:var(--voile); color:var(--papier); font-family:var(--mono); font-size:.82em; letter-spacing:.02em; text-transform:none;}
.trou::before{content:"⟨ "}
.trou::after{content:" ⟩"}
@media (max-width:720px){.tampon{top:auto; bottom:auto; margin-top:0; width:70px; transform:translateY(14px) rotate(-14deg)}
.heros h1 + .definition + .tampon,.definition + .tampon{position:absolute; top:clamp(64px,17vw,90px)}}
.btn--plein .trou{border-color:var(--encre); color:var(--encre); background:none}
.apparait{opacity:0; transform:translateY(16px); transition:opacity var(--duree) var(--courbe), transform var(--duree) var(--courbe)}
.apparait.vu{opacity:1; transform:none}
.apparait--d1{transition-delay:.07s}
.apparait--d2{transition-delay:.14s}
.apparait--d3{transition-delay:.21s}
@media (max-width:900px){.menu{position:fixed; inset:0; background:var(--encre); flex-direction:column; align-items:flex-start; justify-content:center; gap:20px; padding:0 var(--gouttiere); margin:0; clip-path:inset(0 0 100% 0); transition:clip-path .5s var(--courbe);}
.menu.est-ouvert{clip-path:inset(0 0 0 0)}
.menu a{font-family:var(--display); font-size:1.6rem; font-weight:700; letter-spacing:-.03em; text-transform:uppercase; color:var(--papier)}
.declic{display:block; z-index:110; position:relative}
.heros__dire,.detail{grid-template-columns:1fr}
.vignette{flex:0 0 78vw}
.prix{grid-template-columns:1fr}
.socle{grid-template-columns:1fr}}
@media (max-width:520px){.heros__actions .btn,.final__actions .btn{width:100%; justify-content:center}
.final h2{white-space:normal}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important; transition:none !important}
.apparait{opacity:1; transform:none}
html{scroll-behavior:auto}}
.heros__detail strong{color:var(--papier); font-weight:600}
.heros__dire .heros__actions{margin-top:24px}
.etat__droite{margin-left:auto}
.travaux{display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,3vw,40px); margin-top:clamp(36px,4vw,56px)}
.travail{margin:0}
.travail figcaption{display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding-top:14px}
.travail figcaption strong{font-size:1.125rem; letter-spacing:-.02em}
.travail figcaption span{font-family:var(--mono); font-size:var(--mini); color:var(--gris); letter-spacing:.06em; text-align:right}
.carrousel{margin-top:clamp(40px,5vw,72px)}
.scenes{display:flex; gap:clamp(24px,4vw,64px); overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; overscroll-behavior-x:contain; scrollbar-width:none; padding-bottom:4px}
.scenes::-webkit-scrollbar{display:none}
.scenes:focus-visible{outline:1px dashed var(--trait-f); outline-offset:8px}
.scene{margin:0; flex:0 0 100%; scroll-snap-align:start; scroll-snap-stop:always}
.carrousel .scene{transition:opacity .6s var(--courbe), scale .6s var(--courbe), transform .9s var(--sortie)}
.carrousel .scenes .scene.vu:not(.actif){opacity:.22; scale:.94; cursor:pointer}
.carrousel .scenes .scene.vu:not(.actif):hover{opacity:.4}
.carrousel .scene:not(.actif) .scene__legende{visibility:hidden}
.scenes.invite .scene{animation:invite 1.3s var(--courbe)}
@keyframes invite{40%{ translate:-70px 0 } 100%{ translate:0 0 }}
@media (max-width:760px){.scene{flex-basis:84%}}
@media (prefers-reduced-motion: reduce){.scenes.invite .scene{animation:none}}
.carrousel__pilote{display:flex; align-items:center; gap:clamp(14px,2vw,24px); margin-top:clamp(26px,3vw,40px)}
.carrousel__compte{margin:0; font-family:var(--mono); font-size:var(--mini); letter-spacing:.12em; color:var(--gris)}
.carrousel__compte b{color:var(--rouge); font-weight:400}
.carrousel__piste{flex:1; height:1px; background:var(--trait); position:relative; overflow:hidden}
.carrousel__piste span{position:absolute; inset:0 auto 0 0; width:50%; background:var(--rouge); transition:transform .6s var(--courbe)}
.carrousel__btn{width:48px; height:48px; display:grid; place-items:center; flex-shrink:0; background:none; color:var(--papier); border:1px solid var(--trait-f); cursor:pointer; transition:background var(--court) var(--courbe), color var(--court) var(--courbe), border-color var(--court) var(--courbe)}
.carrousel__btn svg{width:18px; height:18px}
.carrousel__btn:hover:not(:disabled){background:var(--rouge); border-color:var(--rouge); color:var(--encre)}
.carrousel__btn:disabled{opacity:.3; cursor:default}
.carrousel__btn:focus-visible{outline:2px solid var(--rouge); outline-offset:3px}
.scene__cadre{position:relative; padding-right:11%; padding-bottom:7%}
.scene__ecran{overflow:hidden; border:1px solid var(--trait); background:#111; box-shadow:0 50px 120px -40px rgba(0,0,0,.9)}
.scene__ecran img{display:block; width:100%; height:auto; aspect-ratio:1600/1012; object-fit:cover; object-position:top}
.scene__tel{position:absolute; right:0; bottom:0; width:22%; padding:6px; border-radius:30px; background:#0b0b0a; border:1px solid var(--trait-f); box-shadow:0 40px 80px -20px rgba(0,0,0,.95); will-change:transform}
.scene__tel img{display:block; width:100%; height:auto; border-radius:24px}
.scene__legende{display:grid; grid-template-columns:auto auto 1fr auto; align-items:baseline; gap:10px 18px; margin-top:clamp(22px,2.4vw,34px); padding-top:16px; border-top:1px solid var(--trait)}
.scene__num{font-family:var(--mono); font-size:var(--mini); color:var(--rouge); letter-spacing:.1em}
.scene__legende strong{font-size:clamp(1.25rem,2vw,1.6rem); letter-spacing:-.02em}
.scene__meta{font-family:var(--mono); font-size:var(--mini); color:var(--gris); letter-spacing:.06em; text-transform:uppercase}
.scene__lien{display:inline-flex; align-items:center; gap:8px; justify-self:end; font-family:var(--mono); font-size:var(--mini); letter-spacing:.12em; text-transform:uppercase; color:var(--rouge); text-decoration:none; padding:10px 0; border-bottom:1px solid currentColor}
.scene__lien svg{width:14px; height:14px; transition:transform var(--court) var(--courbe)}
.scene__lien:hover svg{transform:translate(3px,-3px)}
.scene__legende .trou{justify-self:end}
@media (max-width:760px){.scene__cadre{padding:0 0 22% 0}
.scene__tel{width:34%; right:0; padding:4px; border-radius:18px}
.scene__tel img{border-radius:14px}
.scene__legende{grid-template-columns:auto 1fr;}
.scene__meta{grid-column:1 / -1}
.scene__lien,.scene__legende .trou{grid-column:1 / -1; justify-self:start}}
.prix{margin-top:clamp(36px,4vw,56px); align-items:center}
.prix__suite{max-width:40ch}
.prix__suite-titre{font-family:var(--mono); font-size:var(--mini); letter-spacing:var(--caps); text-transform:uppercase; color:var(--gris); margin-bottom:18px}
.prix__suite p{font-size:1.125rem; color:var(--gris)}
.prix__suite strong{color:var(--papier)}
.prix__suite .btn{margin-top:12px}
.etapes--trois{grid-template-columns:repeat(3,1fr); margin-top:clamp(36px,4vw,56px)}
.questions{margin-top:clamp(36px,4vw,56px); max-width:860px}
.signature{font-family:var(--serif); font-style:italic; font-size:1.2em; color:var(--rouge)}
.final .chapo{font-size:1.125rem}
.pied__legal{margin-left:auto}
@media (max-width:900px){.travaux{grid-template-columns:1fr}
.etapes--trois{grid-template-columns:1fr}
.prix__suite{max-width:none}}
.etapes--trois{list-style:none; padding:0}
.etapes--trois .etape{padding-top:28px}
.etapes--trois .etape__num{color:var(--rouge)}
.etapes--trois .etape h3{font-size:clamp(1.4rem,2.2vw,1.9rem); margin:14px 0 10px}
.etapes--trois .etape p{font-size:1rem; max-width:30ch}
@media (max-width:720px){.definition{padding-right:84px}}
.entete--posee{-webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(14,14,13,.97)}
html.menu-ouvert,html.menu-ouvert body{overflow:hidden}
a,button,summary{-webkit-tap-highlight-color:transparent}
html{scroll-padding-top:120px}
@media (max-width:900px){.declic{width:44px; height:44px; margin-right:-10px}
.declic span{left:10px; right:10px}
.declic span:nth-child(1){top:17px; bottom:auto}
.declic span:nth-child(2){top:25px; bottom:auto}
.declic[aria-expanded="true"] span:nth-child(1),.declic[aria-expanded="true"] span:nth-child(2){top:21px; bottom:auto}
.entete .marque{position:relative; z-index:110}
.menu{z-index:105; height:100vh; height:100dvh; overflow-y:auto; overscroll-behavior:contain; padding:calc(90px + env(safe-area-inset-top)) max(var(--gouttiere), env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(var(--gouttiere), env(safe-area-inset-left)); justify-content:flex-start; gap:4px; visibility:hidden; transition:clip-path .55s var(--courbe), visibility 0s linear .55s;}
.menu.est-ouvert{visibility:visible; transition:clip-path .55s var(--courbe), visibility 0s}
.menu a{display:flex; align-items:center; min-height:56px; width:100%; font-size:clamp(2rem,9vw,2.8rem); border-bottom:1px solid var(--trait); opacity:0; transform:translateY(24px); transition:opacity .45s var(--sortie, var(--courbe)), transform .6s var(--sortie, var(--courbe)), color .2s;}
.menu.est-ouvert a{opacity:1; transform:none}
.menu.est-ouvert a:nth-child(1){transition-delay:.12s}
.menu.est-ouvert a:nth-child(2){transition-delay:.18s}
.menu.est-ouvert a:nth-child(3){transition-delay:.24s}
.menu.est-ouvert a:nth-child(4){transition-delay:.30s}
.menu a[href="#contact"]{color:var(--rouge)}
.menu a::after{display:none}}
@media (max-width:720px){.heros{padding:92px 0 28px; min-height:calc(100svh - var(--barre, 44px)); display:flex}
.heros__contenu{display:flex; flex-direction:column; width:100%}
.heros .grille-fond,.heros .definition,.heros .tampon,.heros .incruste{display:none}
.heros h1{font-size:clamp(3rem,17.2vw,7rem); letter-spacing:-.05em; line-height:.84; flex-wrap:nowrap; margin:0 0 0 -.03em}
.heros__dire{margin-top:auto; display:flex; flex-direction:column; gap:22px; border-top:1px solid var(--trait); padding-top:24px}
.heros__promesse{font-size:clamp(1.8rem,8.4vw,2.4rem); line-height:1.05}
.heros__detail{font-size:1rem; margin:0}
.heros__dire .heros__actions{margin-top:4px; flex-direction:column; align-items:stretch; gap:14px}
.heros__actions .btn--plein{width:100%; justify-content:center; min-height:54px}
.heros__actions .btn--fil{width:auto; min-height:44px; border:0; padding:0; background:none; justify-content:center; text-decoration:underline; text-underline-offset:5px; text-decoration-color:var(--rouge)}
.heros__actions .btn--fil::before{display:none}}
@media (max-width:720px){.heros__contenu{container-type:inline-size}
.heros h1{font-size:17.2vw; font-size:calc(100cqi / 4.3)}}
@media (max-width:720px){.heros h1 > span{white-space:nowrap; flex-shrink:0}
.heros h1{font-size:15vw; font-size:calc(100cqi / 5.1)}}
.pied__legal{margin:0; flex:1 1 520px; font-family:var(--mono); font-size:var(--mini); line-height:1.7; letter-spacing:.02em; color:var(--gris-bas); text-align:right}
.final__actions .btn[href^="mailto"]{text-transform:none; letter-spacing:.02em}
.final__actions .btn svg{width:18px; height:18px}
@media (max-width:760px){.pied__legal{text-align:left; flex-basis:100%}
.final__actions .btn[href^="mailto"]{font-size:.8rem; word-break:break-all}}
.legale__entete{border-bottom:1px solid var(--trait);}
.legale__entete-int{display:flex; align-items:center; justify-content:space-between; min-height:64px}
.legale__retour{font-family:var(--mono); font-size:var(--mini); letter-spacing:.12em; text-transform:uppercase; color:var(--gris); text-decoration:none}
.legale__retour:hover{color:var(--rouge)}
.legale{padding-top:clamp(56px,8vw,110px); padding-bottom:clamp(70px,9vw,130px); max-width:860px; margin-left:auto; margin-right:auto}
.legale h1{font-size:clamp(2.4rem,6vw,4.6rem); font-weight:800; letter-spacing:var(--serre); line-height:1; margin:14px 0 18px}
.legale h1 em{font-family:var(--serif); font-style:italic; font-weight:400; color:var(--rouge)}
.legale__maj{font-family:var(--mono); font-size:var(--mini); letter-spacing:.08em; color:var(--gris-bas)}
.legale section{margin-top:clamp(40px,5vw,64px); padding-top:24px; border-top:1px solid var(--trait)}
.legale h2{font-size:clamp(1.3rem,2.4vw,1.7rem); letter-spacing:-.02em; margin:0 0 16px}
.legale h3{font-size:1.05rem; margin:28px 0 10px}
.legale p{color:var(--gris); max-width:68ch; line-height:1.65}
.legale strong{color:var(--papier)}
.legale a{color:var(--papier); text-decoration-color:var(--rouge); text-underline-offset:3px}
.legale a:hover{color:var(--rouge)}
.legale dl{margin:0}
.legale dl > div{display:grid; grid-template-columns:minmax(0,220px) 1fr; gap:6px 24px; padding:12px 0; border-bottom:1px solid var(--trait)}
.legale dt{font-family:var(--mono); font-size:var(--mini); letter-spacing:.12em; text-transform:uppercase; color:var(--gris)}
.legale dd{margin:0; color:var(--papier)}
.legale--404 .btn{margin-top:18px; text-decoration:none}
.pied__legal a{color:var(--gris); text-decoration:underline; text-decoration-color:var(--rouge); text-underline-offset:3px}
.pied__legal a:hover{color:var(--papier)}
@media (max-width:760px){.legale dl > div{grid-template-columns:1fr}}
.son{display:inline-flex; align-items:center; gap:10px; background:none; border:1px solid var(--trait-f); color:var(--papier); padding:8px 12px; cursor:pointer; font-family:var(--mono); font-size:var(--mini); letter-spacing:var(--caps); text-transform:uppercase; min-height:36px}
.son:hover{border-color:var(--rouge)}
.son:focus-visible{outline:2px solid var(--rouge); outline-offset:3px}
.son__barres{display:flex; align-items:flex-end; gap:2px; height:12px}
.son__barres i{width:2px; height:100%; background:var(--rouge); transform-origin:bottom; animation:egaliseur 1s ease-in-out infinite}
.son__barres i:nth-child(2){animation-delay:-.3s}
.son__barres i:nth-child(3){animation-delay:-.6s}
.son__barres i:nth-child(4){animation-delay:-.15s}
@keyframes egaliseur{0%,100%{ transform:scaleY(.25) } 50%{ transform:scaleY(1) }}
.son--coupe{color:var(--gris)}
.son--coupe .son__barres i{animation:none; transform:scaleY(.2); background:var(--gris)}
.son--coupe .son__txt{text-decoration:line-through; text-decoration-color:var(--rouge)}
@media (prefers-reduced-motion: reduce){.son__barres i{animation:none; transform:scaleY(.6)}}
.film__cadre{position:relative; margin-top:clamp(36px,4vw,56px); border:1px solid var(--trait-f); background:#000; box-shadow:0 50px 120px -40px rgba(0,0,0,.9); aspect-ratio:16/9; max-width:100%}
.film__video{display:block; width:100%; height:100%; object-fit:cover; background:#000}
.film__son{position:absolute; left:clamp(12px,2vw,24px); bottom:clamp(12px,2vw,24px); display:inline-flex; align-items:center; gap:10px; background:var(--papier); color:var(--encre); border:0; padding:14px 18px; cursor:pointer; font-family:var(--mono); font-size:var(--mini); letter-spacing:var(--caps); text-transform:uppercase; transition:background var(--court) var(--courbe), opacity .3s, transform .3s}
.film__son svg{width:18px; height:18px}
.film__son:hover{background:var(--rouge)}
.film__son:focus-visible{outline:2px solid var(--rouge); outline-offset:3px}
@media (max-width:760px){.son{padding:6px 10px}
.son__txt{display:none}}
.film__son--actif{left:auto; right:clamp(12px,2vw,24px); bottom:auto; top:clamp(12px,2vw,24px); background:rgba(14,14,13,.78); color:var(--papier); border:1px solid var(--trait-f)}
.film__son--actif:hover{background:var(--rouge); color:var(--encre)}
.film__son svg .barre-son{display:none}
.film__son--actif svg .vagues{display:none}
.film__son--actif svg .barre-son{display:inline}
html{scroll-padding-top:104px}
@media (min-width:901px){html{scroll-snap-type:y proximity}
.heros,.section,.final{scroll-snap-align:start}
.section{--section:clamp(36px,5vh,76px); padding-block:var(--section); min-height:calc(100svh - 104px); box-sizing:border-box; display:flex; flex-direction:column; justify-content:center}
.section > .large{width:100%}
.titre{font-size:clamp(2.3rem, min(5.4vw, 7vh), 4.6rem)}
.final{min-height:calc(100svh - 104px); box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; padding-block:clamp(40px,6vh,90px)}
.final > .large{width:100%}
.film__cadre{width:min(100%, calc((100svh - 104px - 10vh - 200px) * 16 / 9)); margin-inline:0; margin-top:clamp(18px,3vh,40px)}
.carrousel{margin-top:clamp(18px,3vh,40px)}
.scene__ecran img{aspect-ratio:2/1}
.scene{flex-basis:min(100%, calc((100svh - 104px - 10vh - 200px - 84px - 134px) / .515))}
.scene__legende{margin-top:clamp(12px,2vh,24px); padding-top:12px}
.carrousel__pilote{margin-top:clamp(12px,2vh,26px)}
.prix,.etapes--trois,.questions{margin-top:clamp(18px,3vh,40px)}}
@media (min-width:901px) and (max-height:940px){.ticket{zoom:.86}}
@media (min-width:901px) and (max-height:820px){.ticket{zoom:.74}}
