/* Anaïs Delaunay – « Riad & soleil », version élégante */
:root{
  --sand:#f4ece1; --sand-2:#ece0d0; --cream:#fbf6ef; --rose:#f1e0d6; --sage:#e3e9e1;
  --terra:#a9522c; --terra-2:#c07a52; --green:#2f5d50; --espresso:#2a211c;
  --ink:#2a211c; --muted:#6b5c50; --line:rgba(42,33,28,.16); --line-light:rgba(251,246,239,.22);
  --display:'Fraunces',Georgia,serif; --body:'DM Sans',system-ui,sans-serif;
  --gutter:clamp(18px,5vw,72px); --wrap:1280px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{background:var(--sand);color:var(--ink);font:400 16.5px/1.7 var(--body);overflow-x:clip;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:1.5px solid var(--terra);outline-offset:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
section{position:relative;scroll-margin-top:80px}

/* Typographie */
.display{font-family:var(--display);font-weight:300;line-height:.98;letter-spacing:-.015em;font-variation-settings:"opsz" 144,"SOFT" 30}
.display em,h2 em{font-style:italic;font-weight:300;color:var(--terra)}
h2.display{font-size:clamp(44px,6.4vw,92px)}
.kicker{display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.28em;text-transform:uppercase;font-weight:500;color:var(--terra);margin-bottom:22px}
.kicker::before{content:"";width:34px;height:1px;background:currentColor}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 30px;border-radius:999px;background:var(--espresso);color:var(--cream);border:1px solid var(--espresso);font-weight:500;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .3s,color .3s,border-color .3s}
.btn:hover{background:var(--terra);border-color:var(--terra)}
.btn.line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--cream)}
.link{display:inline-flex;align-items:center;gap:10px;min-height:50px;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;text-decoration:none;position:relative}
.link::after{content:"";width:28px;height:1px;background:currentColor;transition:width .3s var(--ease)}
.link:hover::after{width:44px}

/* En-tête (apparaît après l'ouverture) */
.header{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;gap:28px;padding:14px var(--gutter);background:rgba(244,236,225,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transform:translateY(-100%);transition:transform .45s var(--ease)}
.header.show{transform:none}
.logo{font-family:var(--display);font-weight:300;font-style:italic;font-size:23px;text-decoration:none;white-space:nowrap}
.header nav{display:flex;gap:30px;margin-left:auto;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.header nav a{text-decoration:none;color:var(--muted);padding:10px 0;transition:color .2s}
.header nav a:hover{color:var(--ink)}
.lang{font-size:12px;letter-spacing:.14em;color:var(--muted);text-decoration:none;white-space:nowrap;padding:10px 4px}
.lang b{color:var(--ink);font-weight:500}
.header .btn{min-height:42px;padding:0 20px;font-size:11.5px}
.logo + .lang{margin-left:auto}
@media (max-width:980px){.header nav{display:none}.lang{margin-left:auto}}
@media (max-width:420px){.header{gap:10px}.logo{font-size:19px}.header .btn{padding:0 14px;letter-spacing:.1em}}

/* ---------- 1. Ouverture minimaliste ---------- */
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--sand)}
.sun-disc{position:absolute;width:min(62vw,760px);aspect-ratio:1;border-radius:50%;right:-8vw;top:50%;margin-top:calc(min(62vw,760px) / -2);background:radial-gradient(circle at 50% 45%,rgba(214,138,92,.55),rgba(214,138,92,.28) 45%,rgba(214,138,92,0) 70%);pointer-events:none}
.sun-disc.small{width:520px;right:-160px;top:-120px;margin-top:0;opacity:.7}
.uni.voyage .sun-disc.small{background:radial-gradient(circle,rgba(47,93,80,.18),rgba(47,93,80,0) 70%)}
.hero-lang{position:absolute;top:26px;right:var(--gutter);z-index:3;font-size:12px;letter-spacing:.16em;text-decoration:none;color:var(--muted);padding:10px 0}
.hero-lang b{color:var(--ink);font-weight:500}
.hero .wrap{width:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(30px,5vw,90px);align-items:center;position:relative;z-index:1;padding-top:100px;padding-bottom:110px}
.hero h1{font-size:clamp(62px,9vw,140px)}
.hero h1 > span{display:block}
.hero h1 > span:nth-of-type(2){padding-left:.6em}
.rule{display:block;width:72px;height:1px;background:var(--ink);margin:36px 0 26px}
.hero-lead{max-width:27em;font-size:18px;color:var(--muted)}
.hero-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px;margin-top:34px}
.hero-social{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:40px;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.hero-social a{text-decoration:none;color:var(--muted);padding:8px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.hero-social a:hover{color:var(--ink);border-color:var(--ink)}
.arch{justify-self:end;width:min(430px,100%);margin:0}
.arch-frame{aspect-ratio:3/4;border-radius:999px 999px 0 0;outline:1px solid var(--ink);outline-offset:14px}
.arch-photo{width:100%;height:100%;border-radius:999px 999px 0 0;overflow:hidden;background:linear-gradient(175deg,#b9714a,#d9a27c 45%,#eed3b9);display:grid;place-items:end center;padding-bottom:24px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.9)}
.arch-photo img,.arch-photo video{width:100%;height:100%;object-fit:cover}
.arch figcaption{margin-top:30px;text-align:center;font-size:12px;letter-spacing:.16em;color:var(--muted)}
.scroll-cue{position:absolute;left:50%;bottom:26px;width:1px;height:56px;background:var(--line);overflow:hidden;z-index:2}
.scroll-cue span{position:absolute;left:0;top:0;width:1px;height:50%;background:var(--ink);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-100%)}100%{transform:translateY(200%)}}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr;padding-top:90px;padding-bottom:100px}
  .arch{justify-self:center;width:min(320px,82%)}
  .sun-disc{width:120vw;margin-top:-60vw;right:-50vw;top:62%}
}

/* ---------- Bandeau défilant ---------- */
.marquee{background:var(--cream);color:var(--ink);overflow:hidden;border-block:1px solid var(--line);position:relative;z-index:2}
.marquee.green{background:var(--green);color:var(--cream);border-color:transparent}
.marquee-track{display:flex;width:max-content;animation:marquee 45s linear infinite}
.marquee.reverse .marquee-track{animation-direction:reverse}
.marquee span{display:flex;align-items:center;gap:34px;padding:20px 17px;font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(22px,2.4vw,32px);white-space:nowrap}
.marquee span::after{content:"";width:9px;height:9px;background:var(--terra);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.marquee.green span::after{background:#e2b08c}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- 2. Reels à la une : défilement horizontal ---------- */
.reels-scroll{background:var(--sand)}
.rs-sticky{padding:100px 0 80px;overflow:hidden}
.rs-viewport{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain}
.rs-viewport::-webkit-scrollbar{display:none}
.rs-viewport,.uni-row{cursor:grab}
.rs-viewport.dragging,.uni-row.dragging{cursor:grabbing;user-select:none;scroll-snap-type:none}
.rs-track{display:flex;gap:32px;padding:0 var(--gutter);width:max-content}
.arrows{display:flex;gap:10px;margin-top:28px}
.arrow{width:50px;height:50px;border-radius:50%;border:1px solid var(--ink);background:transparent;cursor:pointer;display:grid;place-items:center;transition:background .25s,color .25s}
.arrow:hover{background:var(--ink);color:var(--cream)}
.arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.arrow.prev svg{transform:scaleX(-1)}
.rs-intro p,.rs-end p{color:var(--muted)}
@media (min-width:861px){
  .reels-scroll.pinned{height:var(--h,260vh)}
  .reels-scroll.pinned .rs-sticky{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;padding:80px 0 30px}
}
@media (max-width:860px){
  .rs-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-padding-left:var(--gutter)}
  .rs-viewport::-webkit-scrollbar{display:none}
  .rs-track{gap:18px}
  .rs-track .phone,.rs-intro,.rs-end{scroll-snap-align:start}
}

/* Cadre téléphone */
.phone{position:relative;flex:0 0 auto;width:clamp(200px,18vw,250px);border:none;background:none;cursor:pointer;text-align:left;padding:0}
.phone-body,.phone-screen,.phone-cap,.phone-cap span{display:block}
.phone-body{position:relative;aspect-ratio:9/18.5;border-radius:34px;background:var(--espresso);padding:6px;box-shadow:0 30px 60px -20px rgba(42,33,28,.35);transition:transform .5s var(--ease)}
.phone:hover .phone-body{transform:translateY(-6px)}
.phone-screen{position:relative;width:100%;height:100%;border-radius:28px;overflow:hidden;background:var(--g,linear-gradient(170deg,#c9875c,#6e4a2e));isolation:isolate;color:#fff}
.phone-screen::before{content:"";position:absolute;top:9px;left:50%;transform:translateX(-50%);width:30%;height:16px;border-radius:999px;background:var(--espresso);z-index:3}
.phone-screen video,.phone-screen img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.phone-screen::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55));z-index:-1}
.phone-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.7);display:grid;place-items:center;transition:background .3s}
.phone:hover .phone-play{background:rgba(255,255,255,.18)}
.phone-play svg{width:16px;height:16px;fill:#fff;margin-left:3px}
.phone-tag{position:absolute;top:36px;left:14px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:#fff;opacity:.9}
.phone-views{position:absolute;left:14px;bottom:14px;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}
.phone-views svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:1.6}
.phone-soon{position:absolute;inset:auto 0 30% 0;text-align:center;font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.phone-cap{margin-top:18px}
.phone-cap b{display:block;font-family:var(--display);font-weight:400;font-size:19px;line-height:1.25}
.phone-cap span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}

/* ---------- 3. Chiffres ---------- */
.why{padding:110px 0 0;text-align:center}
.why h2{margin-bottom:60px}
.blocks{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);text-align:left}
.blk{padding:clamp(30px,4vw,54px);min-height:300px;display:flex;flex-direction:column;justify-content:space-between;gap:30px;border-right:1px solid var(--line)}
.blk:last-child{border-right:0}
.blk strong{font-family:var(--display);font-weight:300;font-size:clamp(46px,5.6vw,82px);line-height:.95;letter-spacing:-.02em;white-space:nowrap;font-variation-settings:"opsz" 144}
.blk p{font-size:15px;max-width:16em;opacity:.85}
.blk:nth-child(1){background:var(--espresso);color:var(--cream)}
.blk:nth-child(2){background:var(--sand-2)}
.blk:nth-child(3){background:var(--green);color:var(--cream)}
.blk:nth-child(4){background:var(--rose)}
@media (max-width:980px){.blocks{grid-template-columns:1fr 1fr}.blk{min-height:240px}.blk:nth-child(2){border-right:0}}
@media (max-width:520px){.blocks{grid-template-columns:1fr}.blk{border-right:0;min-height:190px}}

/* ---------- 4. À propos ---------- */
.about{display:grid;grid-template-columns:1fr 1fr}
.about-left{background:linear-gradient(170deg,#b46a45,#c98a63);display:grid;place-items:center;padding:90px 40px;min-height:640px}
.about-arch{width:min(340px,80%);aspect-ratio:3/4;border-radius:999px 999px 0 0;background:linear-gradient(175deg,#e9c3a2,#d9a27c 50%,#b9714a);outline:1px solid rgba(251,246,239,.7);outline-offset:14px;display:grid;place-items:end center;padding-bottom:24px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#fff;overflow:hidden}
.about-arch{position:relative}
.about-arch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-right{background:var(--cream);padding:clamp(48px,7vw,110px);display:flex;flex-direction:column;justify-content:center}
.about-right h2{margin-bottom:34px}
.about-right p{max-width:32em;color:var(--muted)}
.about-right p+p{margin-top:14px}
.about-right .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
@media (max-width:860px){.about{grid-template-columns:1fr}.about-left{min-height:auto;padding:70px 24px}}

/* Séparateur */
.frieze{display:flex;align-items:center;justify-content:center;gap:22px;padding:46px var(--gutter);background:var(--sand)}
.frieze span{flex:0 1 220px;height:1px;background:var(--line)}
.frieze svg{width:16px;height:16px;color:var(--terra)}

/* ---------- 5. Univers ---------- */
.uni{padding:110px 0;overflow:hidden}
.uni.beaute{background:var(--rose)}
.uni.voyage{background:var(--sage)}
.uni .wrap{position:relative;z-index:1}
.uni-head{display:grid;grid-template-columns:1fr 1fr;gap:30px 70px;align-items:end;margin-bottom:60px}
.uni-head p{color:var(--muted);max-width:30em}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chips li{list-style:none;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;padding:9px 16px;border-radius:999px;border:1px solid var(--line)}
.uni-row{display:flex;gap:30px;overflow-x:auto;padding:10px var(--gutter) 30px;margin:0 calc(-1 * var(--gutter));scroll-snap-type:x mandatory;scrollbar-width:none}
.uni-row::-webkit-scrollbar{display:none}
.uni-row .phone{scroll-snap-align:start}
@media (max-width:860px){.uni-head{grid-template-columns:1fr}}

/* ---------- 6. Audience ---------- */
.audience{padding:110px 0;background:var(--sand)}
.aud-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin-top:56px}
.aud{padding:36px 34px 36px 0;border-right:1px solid var(--line)}
.aud+.aud{padding-left:34px}
.aud:last-child{border-right:0}
.aud h3{font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--muted);margin-bottom:22px}
.big{font-family:var(--display);font-weight:300;font-size:76px;line-height:1;color:var(--terra)}
.split{display:flex;height:3px;overflow:hidden;margin:26px 0 12px;background:var(--line)}
.split i{display:block;background:var(--terra)}
.legend{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}
.bars{list-style:none;display:grid;gap:14px}
.bars li{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;gap:14px;font-size:14px}
.bars .bar{height:3px;background:var(--line);overflow:hidden}
.bars .bar i{display:block;height:100%;background:var(--green);transform-origin:left;transform:scaleX(var(--s,1));transition:transform 1.4s var(--ease)}
.bars b{text-align:right;font-weight:500}
.countries{list-style:none;display:grid;gap:10px;counter-reset:c}
.countries li{display:flex;align-items:baseline;gap:16px;counter-increment:c;font-family:var(--display);font-weight:300;font-size:24px;line-height:1.3}
.countries li::before{content:counter(c,decimal-leading-zero);font-family:var(--body);font-size:12px;letter-spacing:.1em;color:var(--terra)}
.date{margin-top:22px;font-size:13px;color:var(--muted)}
@media (max-width:980px){.aud-grid{grid-template-columns:1fr 1fr}.aud.ages{grid-column:1/-1;order:3;border-right:0;border-top:1px solid var(--line);padding-left:0}.aud:nth-child(3){border-right:0}}
@media (max-width:620px){.aud-grid{grid-template-columns:1fr}.aud,.aud+.aud{padding:30px 0;border-right:0;border-bottom:1px solid var(--line)}.aud:last-child{border-bottom:0}.aud.ages{border-top:0}}

/* ---------- 7. Formats ---------- */
.formats{background:var(--green);color:var(--cream);padding:110px 0 40px}
.formats h2 em{color:#e2b08c}
.fmt-list{list-style:none;margin-top:56px;border-top:1px solid var(--line-light)}
.fmt{display:grid;grid-template-columns:70px 1.2fr 1fr auto;gap:24px;align-items:center;padding:32px 0;border-bottom:1px solid var(--line-light)}
.fmt .n{font-size:12px;letter-spacing:.2em;color:#e2b08c}
.fmt h3{font-family:var(--display);font-weight:300;font-size:clamp(28px,3.2vw,42px);line-height:1.05}
.fmt p{color:rgba(251,246,239,.75);font-size:15px}
.fmt .price{font-size:11px;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--line-light);border-radius:999px;padding:9px 18px;white-space:nowrap}
.formats .note{padding:28px 0 64px;color:rgba(251,246,239,.7);font-size:14px}
@media (max-width:860px){.fmt{grid-template-columns:44px 1fr;gap:10px 16px}.fmt p,.fmt .price{grid-column:2}.fmt .price{justify-self:start}}

/* ---------- 8. Contact ---------- */
.contact{background:var(--espresso);color:var(--cream);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,80px);padding:clamp(70px,9vw,130px) var(--gutter);overflow:hidden}
.contact h2{color:var(--cream);margin-bottom:26px}
.contact h2 em{color:#e2b08c}
.contact-left p{color:rgba(251,246,239,.75);max-width:30em}
.contact-links{list-style:none;display:grid;gap:4px;margin:30px 0 40px}
.contact-links a{display:inline-flex;align-items:center;gap:16px;text-decoration:none;font-size:16px;padding:8px 0}
.contact-links a:hover{color:#e2b08c}
.contact-links i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-light);flex:0 0 auto}
.contact-links svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.contact-right{align-self:center;justify-self:center;width:min(380px,100%);aspect-ratio:3/4;border-radius:999px 999px 0 0;background:linear-gradient(175deg,#b9714a,#d9a27c 45%,#eed3b9);outline:1px solid var(--line-light);outline-offset:14px;display:grid;place-items:end center;padding-bottom:24px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#fff;overflow:hidden}
.contact-right img{width:100%;height:100%;object-fit:cover}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;max-width:580px}
.field{display:grid;gap:4px}
.field.full{grid-column:1/-1}
label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(251,246,239,.6)}
input,select,textarea{width:100%;font:inherit;font-size:16px;color:var(--cream);background:transparent;border:0;border-bottom:1px solid rgba(251,246,239,.35);border-radius:0;padding:10px 0;min-height:46px;transition:border-color .2s}
select option{color:var(--ink)}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:#e2b08c}
.hp{position:absolute;left:-9999px}
.form-msg{grid-column:1/-1;font-size:14px;min-height:1.4em}
form .btn{justify-self:start;background:var(--cream);color:var(--espresso);border-color:var(--cream);margin-top:8px}
form .btn:hover{background:#e2b08c;border-color:#e2b08c}
@media (max-width:860px){.contact{grid-template-columns:1fr}.contact-right{order:-1;width:min(260px,70%)}}
@media (max-width:520px){form{grid-template-columns:1fr}}

/* Pied de page */
.footer{background:var(--espresso);color:rgba(251,246,239,.55);border-top:1px solid var(--line-light);padding:26px 0;font-size:12px;letter-spacing:.12em}
.footer .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center}
.footer nav{display:flex;flex-wrap:wrap;gap:8px 26px;text-transform:uppercase}
.footer a{text-decoration:none;padding:6px 0}
.footer a:hover{color:var(--cream)}

/* Lecteur plein écran */
dialog.player{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%;margin:0}
dialog.player::backdrop{background:rgba(20,15,12,.92)}
.player-in{display:grid;place-items:center;height:100%;padding:56px 16px 24px}
.player video{max-height:calc(100vh - 100px);max-width:min(100%,460px);aspect-ratio:9/16;border-radius:18px;background:#000}
.player-empty{color:#fff;text-align:center;max-width:320px}
.player-empty a{color:#e2b08c}
.player-cap{color:#fff;text-align:center;margin-top:12px}
.player-close{position:fixed;top:16px;right:16px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:transparent;cursor:pointer;display:grid;place-items:center}
.player-close svg{width:16px;height:16px;stroke:#fff;stroke-width:1.5}

/* Apparition au défilement */
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);transition-delay:var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal.left{transform:translateX(-40px)}
.js .reveal.zoom{transform:scale(.95)}
.js .reveal.left.in,.js .reveal.zoom.in{transform:none}

/* Pages simples */
.page{padding:140px var(--gutter) 90px;max-width:820px;margin:0 auto}
.page h2{font-family:var(--display);font-weight:400;font-size:26px;margin:34px 0 10px}
.page p{color:var(--muted)}
.todo{background:#f6dfcf;color:#7a3a1d;padding:2px 6px;border-radius:4px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
}
.uni.mode{background:var(--sand-2)}
.phone-play{transition:opacity .3s,background .3s}.phone.is-playing .phone-play{opacity:0}.phone.is-playing:hover .phone-play{opacity:1}

/* ================= Animations « wahou » ================= */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Rideau d'ouverture */
.curtain{display:none}
.curtain-on .curtain,.curtain.lift{display:grid}
.curtain{position:fixed;inset:0;z-index:95;place-items:center;align-content:center;gap:18px;background:var(--sand);text-align:center;overflow:hidden;cursor:pointer;
  clip-path:inset(0 0 0 0);transition:clip-path 1.1s cubic-bezier(.76,0,.24,1)}
.curtain.lift{clip-path:inset(0 0 100% 0)}
.curtain-sun{position:absolute;left:50%;bottom:-38vmin;width:76vmin;height:76vmin;margin-left:-38vmin;border-radius:50%;
  background:radial-gradient(circle,rgba(214,138,92,.9),rgba(214,138,92,.35) 45%,rgba(214,138,92,0) 70%);animation:sunrise 1.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes sunrise{from{transform:translateY(45vmin) scale(.7);opacity:0}to{transform:translateY(-20vmin) scale(1);opacity:1}}
.curtain-name{position:relative;font-family:var(--display);font-weight:300;font-size:clamp(44px,8vw,110px);line-height:1;letter-spacing:-.01em}
.curtain-name em{color:var(--terra)}
.curtain-name span,.curtain-name em{display:inline-block;animation:nameIn 1s cubic-bezier(.2,.7,.2,1) both}
.curtain-name em{animation-delay:.25s}
@keyframes nameIn{from{opacity:0;filter:blur(14px);transform:translateY(30px)}to{opacity:1;filter:none;transform:none}}
.curtain-sub{position:relative;font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--muted);animation:nameIn .9s .45s cubic-bezier(.2,.7,.2,1) both}
.curtain-line{position:relative;width:0;height:1px;background:var(--ink);animation:line 1s .35s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes line{to{width:120px}}
.curtain-on body{overflow:hidden}

/* Pendant le rideau, l'ouverture attend */
.js:not(.ready) .hero .reveal{opacity:0!important;transform:translateY(34px)!important}

/* Grand nom lettre par lettre */
.hero h1.letters{opacity:1!important;transform:none!important}
.hero h1 .mask{overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .mask em{display:inline-block}
.hero h1 .ch{display:inline-block;transform:translateY(105%) rotate(4deg);opacity:0;transition:transform 1.2s cubic-bezier(.2,.8,.2,1),opacity .8s;transition-delay:calc(.25s + var(--i) * .045s)}
.ready .hero h1 .ch{transform:none;opacity:1}

/* Photo d'ouverture : l'arche se dévoile, puis un lent zoom */
.arch-frame{transition:outline-color 1.2s .9s}
.js:not(.ready) .arch-frame{outline-color:transparent}
.arch-photo{clip-path:inset(100% 0 0 0);transition:clip-path 1.6s cubic-bezier(.76,0,.24,1) .35s}
.ready .arch-photo{clip-path:inset(0 0 0 0)}
.arch-photo img{transform:scale(calc(var(--sy,1) * var(--kb,1.3)));transition:transform 2.8s cubic-bezier(.2,.7,.2,1) .35s;will-change:transform}
.ready .arch-photo img{--kb:1}
.arch figcaption{transition:opacity 1s 1.6s}
.js:not(.ready) .arch figcaption{opacity:0}
.sun-disc{animation:glow 7s ease-in-out infinite alternate}
@keyframes glow{from{opacity:.75;scale:.96}to{opacity:1;scale:1.04}}

/* Titres mot par mot */
h2.words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
h2.words .w>span{display:inline-block;transform:translateY(110%);transition:transform 1.1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * .08s)}
h2.words.shown .w>span{transform:none}
h2.words.reveal{opacity:1!important;transform:none!important}

/* Photos en arche qui se dévoilent */
/* L'effet de dévoilement est sur la photo, pas sur le cadre observé : sinon Safari (iPhone) ne déclenche jamais l'apparition. */
.js .about-arch img{clip-path:inset(100% 0 0 0);transition:clip-path 1.5s cubic-bezier(.76,0,.24,1)}
.js .about-arch.in img{clip-path:inset(0 0 0 0)}

/* Téléphones */
.phone-body{transition:transform .5s var(--ease),box-shadow .5s}
.phone-body.tilt{transition:transform .12s linear;box-shadow:0 40px 70px -24px rgba(42,33,28,.45)}
.rs-track .phone,.uni-row .phone{animation:none}

/* Curseur */
.cursor{position:fixed;left:0;top:0;z-index:99;width:0;height:0;pointer-events:none;opacity:0;transition:opacity .3s}
.cursor.on{opacity:1}
.cursor::before{content:"";position:absolute;width:12px;height:12px;left:-6px;top:-6px;border-radius:50%;border:1px solid var(--ink);transition:all .35s var(--ease)}
.cursor span{position:absolute;left:-40px;top:-40px;width:80px;height:80px;display:grid;place-items:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--espresso);opacity:0;transform:scale(.4);transition:all .35s var(--ease)}
.cursor.link::before{width:40px;height:40px;left:-20px;top:-20px;border-color:var(--terra)}
.cursor.play::before{width:80px;height:80px;left:-40px;top:-40px;background:var(--cream);border-color:var(--cream)}
.cursor.play span{opacity:1;transform:none}
.btn,.arrow{transition:background .3s,color .3s,border-color .3s,transform .25s var(--ease)}

@media (prefers-reduced-motion:reduce){
  .curtain{display:none!important}
  .hero h1 .ch,h2.words .w>span{transform:none!important;opacity:1!important}
  .arch-photo,.about-arch img{clip-path:none!important}
  .arch-photo img{transform:none!important}
  .js .hero .reveal{opacity:1!important;transform:none!important}
}
/* Moins d'espace entre « Travaillons ensemble » et « Créons ensemble » */
.formats{padding-bottom:0}
.formats .note{padding:24px 0 48px}
.contact{padding-top:clamp(48px,5vw,72px)}
@media (max-width:860px){.contact-right{order:0;width:min(240px,62%);margin-top:16px}}

/* Photo « bisou » qui apparaît au survol de « Envoyer ma demande » (et après l'envoi) */
.send-wrap{position:relative;justify-self:start;margin-top:8px}
form .send-wrap .btn{margin-top:0}
.kiss{position:absolute;left:50%;bottom:calc(100% + 18px);width:210px;margin:0 0 0 -105px;aspect-ratio:1146/1600;border-radius:999px 999px 6px 6px;overflow:hidden;
  outline:1px solid rgba(251,246,239,.6);outline-offset:8px;box-shadow:0 30px 60px -18px rgba(0,0,0,.6);pointer-events:none;z-index:5;
  opacity:0;transform:translateY(24px) scale(.86) rotate(-4deg);transform-origin:50% 100%;
  transition:opacity .45s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.8,.2,1)}
.kiss img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.send-wrap:hover .kiss,.send-wrap:focus-within .kiss,form.sent .kiss{opacity:1;transform:none}
.send-wrap:hover .kiss img,.send-wrap:focus-within .kiss img,form.sent .kiss img{transform:none}
@media (max-width:520px){.kiss{width:170px;margin-left:-85px}}
@media (prefers-reduced-motion:reduce){.kiss,.kiss img{transition:opacity .2s!important;transform:none!important}}
/* Contact sans photo : une seule colonne centrée */
.contact{grid-template-columns:minmax(0,760px);justify-content:center}
