/* Le Renne du Fjord — page du film. Polices hébergées sur le site (aucun appel à Google). */
@font-face{font-family:"Cinzel";src:url(fonts/cinzel-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Cinzel";src:url(fonts/cinzel-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Lora";src:url(fonts/lora-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Lora";src:url(fonts/lora-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Lora";src:url(fonts/lora-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Nunito";src:url(fonts/nunito-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Nunito";src:url(fonts/nunito-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Nunito";src:url(fonts/nunito-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}

:root{
  --nuit:#16122b; --nuit-2:#211b3d; --violet:#2d2552; --lavande:#b9b0db;
  --neige:#f4f1fb; --texte:#e7e3f3; --doux:#b3acd0;
  --or:#f0c46a; --or-clair:#f8dfa3; --ambre:#e39a3b; --bonnet:#c9392e;
  --papier:#fbf7ef; --encre:#2b2140;
  --rayon:14px; --max:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--nuit);color:var(--texte);font:400 17px/1.65 "Lora",Georgia,serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--or-clair)}
a:hover{color:#fff}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:"Cinzel",Georgia,serif;font-weight:700;letter-spacing:.02em;line-height:1.15;color:var(--or);margin:0 0 .5em}
h2{font-size:clamp(1.6rem,3.6vw,2.3rem);text-shadow:0 2px 0 #3a2410}
h3{font-size:1.15rem;color:var(--or-clair)}
p{margin:0 0 1em}
.sur-titre{font:800 .78rem/1 "Nunito",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--lavande);margin-bottom:.9rem}

/* barre du haut */
.barre{position:sticky;top:0;z-index:20;background:rgba(22,18,43,.86);backdrop-filter:blur(8px);border-bottom:1px solid rgba(240,196,106,.18)}
.barre .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px}
.marque{font:700 1rem/1 "Cinzel",serif;color:var(--or);text-decoration:none;white-space:nowrap}
.barre nav{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none}
.barre nav a{font:700 .86rem/1 "Nunito",sans-serif;color:var(--texte);text-decoration:none;white-space:nowrap;padding:6px 0}
.barre nav a:hover{color:var(--or)}
@media (max-width:760px){.barre nav{display:none}}

/* en-tête */
.hero{position:relative;min-height:min(92vh,760px);display:flex;align-items:flex-end;overflow:hidden}
.hero img.fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,18,43,.15) 0%,rgba(22,18,43,.35) 45%,rgba(22,18,43,.96) 100%)}
.hero .wrap{position:relative;z-index:2;padding-bottom:56px;padding-top:120px;width:100%}
.titre{font:700 clamp(2.9rem,9vw,6.2rem)/.92 "Cinzel",serif;color:var(--or-clair);margin:0 0 18px;
  text-shadow:0 3px 0 #5a3614,0 0 2px #5a3614,0 10px 30px rgba(0,0,0,.55)}
.titre span{display:block}
.accroche{font:italic 400 clamp(1.1rem,2.4vw,1.45rem)/1.4 "Lora",serif;color:#fff;max-width:34em;margin-bottom:18px;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.puces{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px;padding:0;list-style:none}
.puces li{font:700 .82rem/1 "Nunito",sans-serif;background:rgba(244,241,251,.12);border:1px solid rgba(244,241,251,.25);border-radius:99px;padding:8px 13px;color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:10px;font:800 1rem/1 "Nunito",sans-serif;text-decoration:none;border-radius:99px;padding:15px 24px;border:0;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-or{background:linear-gradient(180deg,#f8d98d,#e9b04d);color:#2a1a08;box-shadow:0 6px 22px rgba(233,176,77,.35)}
.btn-or:hover{color:#2a1a08;box-shadow:0 8px 28px rgba(233,176,77,.5)}
.btn-ligne{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6)}
.btn-ligne:hover{border-color:var(--or);color:var(--or)}
.decompte{font:700 .95rem/1.3 "Nunito",sans-serif;color:var(--or-clair);margin-top:14px}

/* sections */
section{padding:72px 0}
.alt{background:var(--nuit-2)}
.deux{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}
@media (max-width:860px){.deux{grid-template-columns:1fr;gap:28px}}
.cadre{border-radius:var(--rayon);overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.45);border:1px solid rgba(240,196,106,.18)}
.citation{font:italic 400 1.2rem/1.5 "Lora",serif;color:var(--or-clair);border-left:3px solid var(--or);padding:4px 0 4px 18px;margin:22px 0}

/* bande-annonce */
.video{position:relative;aspect-ratio:16/9;border-radius:var(--rayon);overflow:hidden;background:#000;box-shadow:0 18px 50px rgba(0,0,0,.5)}
.video img{width:100%;height:100%;object-fit:cover;opacity:.85}
.video button{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;font:700 1rem "Nunito",sans-serif}
.video button .rond{width:84px;height:84px;border-radius:50%;background:rgba(240,196,106,.95);display:grid;place-items:center;box-shadow:0 8px 30px rgba(0,0,0,.5)}
.video button .rond::after{content:"";margin-left:6px;border-style:solid;border-width:15px 0 15px 25px;border-color:transparent transparent transparent #2a1a08}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.note{font:400 .82rem/1.5 "Nunito",sans-serif;color:var(--doux);margin-top:10px}

/* galerie */
.galerie{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.galerie img{border-radius:10px;aspect-ratio:2206/946;object-fit:cover;width:100%}
@media (max-width:700px){.galerie{grid-template-columns:1fr 1fr}}

/* personnages */
.persos{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}
.perso{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--rayon);padding:18px}
.perso h3{margin-bottom:.3em}
.perso p{font-size:.95rem;margin:0;color:var(--texte)}
@media (max-width:860px){.persos{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.persos{grid-template-columns:1fr}}

/* calendrier */
.calendrier{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:10px}
.calendrier li{display:grid;grid-template-columns:240px 1fr;gap:16px;align-items:baseline;padding:14px 18px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.calendrier li.fort{background:linear-gradient(90deg,rgba(240,196,106,.2),rgba(240,196,106,.05));border-color:rgba(240,196,106,.45)}
.calendrier .quand{font:800 .95rem/1.3 "Nunito",sans-serif;color:var(--or-clair)}
@media (max-width:560px){.calendrier li{grid-template-columns:1fr;gap:2px}}

/* cartes documents */
.cartes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}
@media (max-width:860px){.cartes{grid-template-columns:1fr}}
.carte{background:var(--papier);color:var(--encre);border-radius:var(--rayon);padding:22px;display:flex;flex-direction:column;gap:8px}
.carte h3{color:#7a4a12;font-size:1.05rem}
.carte p{font-size:.95rem;margin:0 0 6px}
.carte a.lien{margin-top:auto;font:800 .95rem/1 "Nunito",sans-serif;color:#a4461f;text-decoration:none}
.carte a.lien:hover{text-decoration:underline}
.carte .etat{font:700 .78rem/1 "Nunito",sans-serif;color:#8a7f9e}

/* chiffres */
.chiffres{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:26px 0}
.chiffre{text-align:center;padding:18px 10px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.chiffre b{display:block;font:700 2.1rem/1 "Cinzel",serif;color:var(--or)}
.chiffre span{font:700 .82rem/1.3 "Nunito",sans-serif;color:var(--doux)}
@media (max-width:700px){.chiffres{grid-template-columns:1fr 1fr}}

/* formulaire */
.formulaire{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.formulaire input[type=email]{flex:1 1 260px;font:400 1rem "Nunito",sans-serif;padding:14px 18px;border-radius:99px;border:1.5px solid rgba(255,255,255,.3);background:rgba(255,255,255,.07);color:#fff}
.formulaire input::placeholder{color:var(--doux)}
.formulaire input:focus{outline:2px solid var(--or);outline-offset:2px}
.cache{position:absolute;left:-9999px}
.petit{font:400 .82rem/1.5 "Nunito",sans-serif;color:var(--doux);margin-top:10px}

/* pied */
footer{padding:44px 0 60px;border-top:1px solid rgba(240,196,106,.18);font:400 .9rem/1.6 "Nunito",sans-serif;color:var(--doux)}
footer .wrap{display:flex;flex-wrap:wrap;gap:18px 40px;justify-content:space-between}
footer a{color:var(--texte)}
.reseaux{display:flex;flex-wrap:wrap;gap:14px}

/* pages simples */
.page{padding:60px 0 80px}
.page h1{font-size:clamp(1.8rem,4vw,2.6rem)}
.page h2{font-size:1.3rem;margin-top:1.6em;text-shadow:none}
.page dl{display:grid;grid-template-columns:200px 1fr;gap:6px 18px}
@media (max-width:560px){.page dl{grid-template-columns:1fr}}
.page dt{font:800 .9rem/1.6 "Nunito",sans-serif;color:var(--or-clair)}
.page dd{margin:0}
.a-completer{background:#5a1f1f;color:#ffd9d2;border-radius:6px;padding:0 6px;font-family:"Nunito",sans-serif;font-weight:700}
:focus-visible{outline:2px solid var(--or);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}
@media (max-width:600px){.hero::after{background:linear-gradient(180deg,rgba(22,18,43,.25) 0%,rgba(22,18,43,.78) 38%,rgba(22,18,43,.97) 100%)}}

/* ===== accueil du studio ===== */
.studio-hero{position:relative;min-height:min(70vh,560px);display:flex;align-items:center;overflow:hidden;background:var(--nuit)}
.studio-hero img.fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;opacity:.55}
.studio-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,18,43,.2) 0%,rgba(22,18,43,.7) 60%,var(--nuit) 100%)}
.studio-hero .wrap{position:relative;z-index:2;padding-top:90px;padding-bottom:50px;width:100%;text-align:center}
.studio-nom{font:700 clamp(2.4rem,7vw,4.6rem)/1 "Cinzel",serif;color:var(--or-clair);margin:0 0 14px;text-shadow:0 3px 0 #5a3614,0 10px 30px rgba(0,0,0,.55)}
.studio-ligne{font:italic 400 clamp(1.05rem,2.2vw,1.35rem)/1.45 "Lora",serif;color:#fff;max-width:30em;margin:0 auto}
.film-carte{display:grid;grid-template-columns:1.15fr .85fr;gap:0;border-radius:var(--rayon);overflow:hidden;border:1px solid rgba(240,196,106,.35);background:var(--nuit-2);box-shadow:0 22px 60px rgba(0,0,0,.5);margin-top:-30px;position:relative;z-index:3}
.film-carte img{width:100%;height:100%;object-fit:cover;min-height:260px}
.film-carte .texte{padding:34px 34px 30px}
.film-carte .texte h2{font-size:clamp(1.6rem,3.2vw,2.2rem);margin-bottom:.35em}
.film-carte .texte p{margin-bottom:.8em}
.film-carte .quand{font:800 .9rem/1.4 "Nunito",sans-serif;color:var(--or-clair)}
@media (max-width:820px){.film-carte{grid-template-columns:1fr}.film-carte img{min-height:200px;max-height:260px}}
.reseaux-cartes{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px}
.reseau{display:block;text-decoration:none;color:var(--texte);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--rayon);padding:20px 18px;transition:border-color .15s}
.reseau:hover{border-color:var(--or);color:var(--texte)}
.reseau b{display:block;font:800 1rem/1.2 "Nunito",sans-serif;color:var(--or-clair);margin-bottom:6px}
.reseau span{font-size:.92rem;color:var(--doux)}
@media (max-width:820px){.reseaux-cartes{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.reseaux-cartes{grid-template-columns:1fr}}
.bientot{border:1px dashed rgba(240,196,106,.35);border-radius:var(--rayon);padding:22px 26px;color:var(--doux);font-style:italic}

/* ===== mouvement de curseur (tubes lumineux) sur toute la page ===== */
.curseur-fixe{position:fixed;inset:0;z-index:15;pointer-events:none;mix-blend-mode:screen;opacity:0;transition:opacity 1.2s ease}
.curseur-fixe.curseur-actif{opacity:1}
.curseur-fixe canvas.tubes{display:block;width:100%;height:100%}

/* ===== en-tête en couches (parallaxe au défilement) ===== */
.couches{position:absolute;inset:0;overflow:hidden}
.couches .couche{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;will-change:transform}
.hero .couche-village{-webkit-mask-image:linear-gradient(to bottom,transparent 36%,#000 50%);mask-image:linear-gradient(to bottom,transparent 36%,#000 50%)}
.hero .couche-neige{-webkit-mask-image:linear-gradient(to bottom,transparent 56%,#000 68%);mask-image:linear-gradient(to bottom,transparent 56%,#000 68%)}
.studio-hero .couches{opacity:.55}
.studio-hero .couche{object-position:50% 30%}
.studio-hero .couche-village{-webkit-mask-image:linear-gradient(to bottom,transparent 30%,#000 46%);mask-image:linear-gradient(to bottom,transparent 30%,#000 46%)}
.hero .wrap,.studio-hero .wrap{will-change:transform,opacity}

/* ===== défilement adouci (Lenis) ===== */
html.lenis,html.lenis body{height:auto}
html.lenis{scroll-behavior:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}

/* ---------- le livre ---------- */
.livre{background:radial-gradient(ellipse 60% 80% at 28% 50%,rgba(240,196,106,.10),transparent 70%),linear-gradient(180deg,var(--nuit-2),var(--violet) 55%,var(--nuit-2));border-top:1px solid rgba(240,196,106,.18);border-bottom:1px solid rgba(240,196,106,.18)}
.livre .fiche{font:800 .82rem/1.5 "Nunito",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--or-clair);margin:-.2em 0 1.2em}
.livre .petit{font-size:.9rem;color:var(--doux);margin:14px 0 0}
.livre .couv-cadre{text-align:center;position:relative}
.livre .couv-cadre::before{content:"";position:absolute;left:12%;right:12%;top:8%;bottom:8%;background:radial-gradient(closest-side,rgba(240,196,106,.32),rgba(240,196,106,0));filter:blur(28px);pointer-events:none}
.livre .couv-cadre a{display:inline-block;position:relative;text-decoration:none}
.livre .couv{display:block;width:100%;max-width:470px;height:auto;transition:transform .25s ease,filter .25s ease}
.livre .couv-cadre a:hover .couv{transform:translateY(-6px) scale(1.02);filter:drop-shadow(0 0 26px rgba(240,196,106,.35))}
.livre .clic{font:700 .8rem/1.4 "Nunito",sans-serif;color:var(--doux);margin:4px 0 0;position:relative}
@media (max-width:860px){.livre .wrap.deux{grid-template-columns:1fr}.livre .couv{max-width:340px}}
