
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/anton-400.woff2') format('woff2')}
@font-face{font-family:'Kaushan Script';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/kaushan-400.woff2') format('woff2')}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/schibsted-400.woff2') format('woff2')}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/schibsted-500.woff2') format('woff2')}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/schibsted-700.woff2') format('woff2')}
@font-face{font-family:'Schibsted Grotesk';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/schibsted-400i.woff2') format('woff2')}
:root{
  --night:#070A1B;--night-2:#0C1226;--chalk:#EEF1FA;--chalk-dim:rgba(238,241,250,.62);
  --blue:#658FFF;--blue-light:#7AA6FF;
  --grad:linear-gradient(120deg,#4A6BE8 0%,#658FFF 45%,#7AA6FF 100%);
  --line:rgba(122,166,255,.14);
  --display:'Anton',sans-serif;
  --script:'Kaushan Script',cursive;
  --body:'Schibsted Grotesk',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--night-2);color:var(--chalk);padding:.7rem 1.2rem;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--night);color:var(--chalk);font-family:var(--body);overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(--blue);color:var(--night)}
body::before{content:"";position:fixed;inset:0;z-index:15;pointer-events:none;opacity:.4;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
main,header,footer{position:relative;z-index:2}
.script{font-family:var(--script);font-weight:400;text-transform:none;letter-spacing:0;
  display:inline-block;padding:.02em .08em .14em .04em;line-height:1.15;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.label{font-family:var(--body);font-weight:700;font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--blue-light)}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:space-between;align-items:center;
  padding:1rem 4vw;background:linear-gradient(rgba(7,10,27,.9),transparent);
  transition:transform .45s cubic-bezier(.4,0,.2,1)}
nav.nav--hidden{transform:translateY(-110%)}
.logo-img{height:56px;width:auto;display:block}
.nav-right{display:flex;align-items:center;gap:2.2rem}
.nav-links{display:flex;gap:2.2rem}
.nav-links a{color:var(--chalk);text-decoration:none;font-family:var(--body);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85;transition:opacity .3s}
.nav-links a:hover,.nav-links a:focus-visible{opacity:1}
.nav-cta{font-family:var(--body);font-weight:700;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;
  color:var(--night);background:var(--grad);padding:.7rem 1.4rem;border-radius:2rem;white-space:nowrap;
  transition:transform .3s,box-shadow .3s}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(101,143,255,.4)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 4vw 5vh;position:relative;overflow:hidden}
.hero-smoke{position:absolute;inset:0;z-index:0;
  background:radial-gradient(55% 45% at 76% 16%,rgba(70,105,205,.30),transparent 62%),
             radial-gradient(70% 55% at 25% 85%,rgba(18,26,54,.55),transparent 70%),
             linear-gradient(180deg,#05070F 0%,#070A1B 100%)}
/* le combattant : calque grand format, fondu dans le noir, AU-DESSUS du texte */
.hero-fighter{position:absolute;right:0;top:0;height:100%;width:auto;max-width:none;z-index:1;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 16%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 16%)}
.hero-shade{position:absolute;left:0;right:0;bottom:0;height:40%;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(7,10,27,.82))}
@media (max-width:900px){
  .hero-fighter{opacity:.92}
}
.hero .hero-eyebrow,.hero h1,.hero .hero-sub{position:relative;z-index:3}
.hero-eyebrow{font-family:var(--body);font-weight:700;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blue-light);
  margin-bottom:2rem;display:flex;align-items:center;gap:1rem;white-space:nowrap;text-shadow:0 2px 14px rgba(2,3,10,.85)}
.hero-eyebrow::before{content:"";display:block;width:3rem;height:1px;background:var(--grad);flex:0 0 auto}
.hero-eyebrow .eb-text{min-width:0}
.hero-eyebrow .nw{white-space:nowrap}
@media (max-width:900px){
  .hero-eyebrow{font-size:.6rem;letter-spacing:.14em;padding-right:4vw;
    text-shadow:0 1px 3px rgba(3,5,14,1),0 2px 12px rgba(3,5,14,.95),0 0 28px rgba(3,5,14,.8)}
  .hero-shade::after{content:"";position:absolute;left:0;right:0;bottom:0;height:64%;
    background:linear-gradient(180deg,transparent,rgba(4,6,15,.55) 30%,rgba(4,6,15,.88) 100%)}
  .hero-eyebrow::before{display:none}
  .hero-eyebrow .eb-text{white-space:normal;line-height:1.7}
  .hero-eyebrow .sep{display:none}
}
h1{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.4rem,6.6vw,6rem);line-height:1.04;letter-spacing:.015em;max-width:17ch;text-shadow:0 4px 40px rgba(2,3,10,.6)}
h1 .script{font-size:1.3em;line-height:1}
.hero-line{overflow:hidden;display:block;padding-bottom:.26em;margin-bottom:-.26em}
.hero-line>span{display:inline-block;transform:translateY(110%)}
.hero-sub{margin-top:2rem;max-width:46ch;font-size:1.02rem;line-height:1.6;color:var(--chalk-dim)}
.hero-scroll{position:absolute;bottom:2.5rem;right:4vw;z-index:4;}
@media (max-width:900px){.hero-scroll{display:none!important}}
.hero-scroll{font-family:var(--body);font-weight:700;font-size:.66rem;letter-spacing:.25em;text-transform:uppercase;color:var(--chalk-dim);display:flex;align-items:center;gap:.9rem}
.hero-scroll::after{content:"";width:1px;height:3.2rem;background:linear-gradient(var(--blue),transparent);animation:drop 2.2s ease-in-out infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- marquee ---------- */
.marquee{margin-top:7vh;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:.95rem 0;white-space:nowrap;background:rgba(12,18,38,.6)}
.marquee-track{display:inline-flex;gap:1.6rem;animation:marquee 22s linear infinite;will-change:transform}
.marquee span{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:.82rem;letter-spacing:.06em;color:var(--chalk-dim)}
.marquee span i{font-style:normal;color:var(--blue);margin-right:1.6rem}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- manifeste ---------- */
.approach{padding:12vh 4vw 4vh;text-align:center}
.approach blockquote{font-family:var(--body);font-weight:400;font-size:clamp(1.1rem,2.4vw,1.9rem);line-height:1.5;white-space:nowrap;margin:0 auto;color:var(--chalk)}
.approach blockquote .script{font-size:1.2em}
@media (max-width:760px){.approach blockquote{white-space:normal;max-width:26ch}}

/* ---------- invitation ---------- */
.enter{min-height:42svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:8vh 4vw}
.enter-title{line-height:1;display:flex;flex-direction:column;align-items:center;gap:.05em}
.enter-l1{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.4rem,7vw,6rem);letter-spacing:.02em;display:block}
.enter-l2{font-family:var(--script);font-weight:400;text-transform:none;font-size:clamp(2.8rem,8vw,7rem);line-height:1.25;display:inline-block;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding:.04em .16em .2em .08em;
  margin-top:-.58em;transform:rotate(-2deg);position:relative;z-index:1;
  filter:drop-shadow(0 6px 24px rgba(7,10,27,.55))}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@keyframes ringPulse{0%{transform:scale(.9);opacity:1}100%{transform:scale(1.55);opacity:0}}
@media (max-width:640px){.enter-l2{margin-top:-.42em}}

/* ========== LE VISEUR ========== */
.vf-stage{height:100svh;position:relative;overflow:hidden;background:#04060F}
.scene{position:absolute;inset:0;z-index:2;visibility:hidden}
.scene-photo{position:absolute;inset:0;overflow:hidden;will-change:filter,transform}
.scene-photo img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,center)}
.scene-shade{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(5,7,17,.66) 0%,rgba(5,7,17,.22) 42%,transparent 65%),
             linear-gradient(0deg,rgba(5,7,17,.68) 0%,transparent 30%)}
.scene--right .scene-shade{
  background:linear-gradient(270deg,rgba(5,7,17,.66) 0%,rgba(5,7,17,.22) 42%,transparent 65%),
             linear-gradient(0deg,rgba(5,7,17,.68) 0%,transparent 30%)}
.scene-inner{position:absolute;left:5vw;bottom:12vh;max-width:620px;will-change:filter,transform,opacity}
.scene--right .scene-inner{left:auto;right:5vw;text-align:right}
.scene-meta{font-family:var(--body);font-weight:700;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--blue-light);margin-bottom:1.1rem}
.scene h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2rem,4.4vw,4rem);line-height:1.05;letter-spacing:.02em;text-shadow:0 4px 30px rgba(2,3,10,.6)}
.scene h3 .script{display:block;font-size:.88em;margin-top:.1em}
.vf-grade{position:absolute;inset:0;z-index:3;mix-blend-mode:screen;opacity:.4;pointer-events:none}
.vf-optics{position:absolute;inset:0;pointer-events:none;z-index:6;
  background:radial-gradient(ellipse 80% 72% at 50% 50%,transparent 55%,rgba(2,3,10,.5) 80%,rgba(2,3,10,.9) 100%)}
.vf-optics::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 170px 40px rgba(2,3,10,.7)}
.hud{position:absolute;inset:0;pointer-events:none;z-index:8;font-family:var(--body);font-weight:700;color:var(--blue-light)}
.hud-corner{position:absolute;width:38px;height:38px;border:2px solid rgba(122,166,255,.6)}
.hud-corner--tl{top:7vh;left:3.5vw;border-right:0;border-bottom:0}
.hud-corner--tr{top:7vh;right:3.5vw;border-left:0;border-bottom:0}
.hud-corner--bl{bottom:7vh;left:3.5vw;border-right:0;border-top:0}
.hud-corner--br{bottom:7vh;right:3.5vw;border-left:0;border-top:0}
.hud-rec{position:absolute;top:8vh;right:5.5vw;display:flex;align-items:center;gap:.55rem;font-size:.7rem;letter-spacing:.2em;text-shadow:0 1px 8px rgba(2,3,10,.8)}
.hud-rec::before{content:"";width:10px;height:10px;border-radius:50%;background:#FF4D5E;animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:.15}}
.hud-mode{position:absolute;top:8vh;left:5.5vw;font-size:.7rem;letter-spacing:.2em;text-shadow:0 1px 8px rgba(2,3,10,.8)}
.hud-exif{position:absolute;bottom:8vh;left:0;right:0;display:flex;justify-content:center;gap:3rem;font-size:.78rem;letter-spacing:.14em;text-shadow:0 1px 8px rgba(2,3,10,.8);font-variant-numeric:tabular-nums}
.hud-exif b{color:var(--chalk);font-weight:700}
.hud-hint{position:absolute;bottom:2.4vh;left:50%;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:.5rem;
  font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--chalk);transition:opacity .6s;pointer-events:none;
  text-shadow:0 1px 8px rgba(2,3,10,.9)}
.hud-hint span{display:inline-block;color:var(--blue-light);animation:hintBob 1.4s ease-in-out infinite}
@keyframes hintBob{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
.enter-hint{margin-top:2.6rem;display:flex;align-items:center;justify-content:center;gap:.5rem;
  font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--chalk-dim)}
.enter-hint span{color:var(--blue-light);animation:hintBob 1.4s ease-in-out infinite}
.hud-counter{position:absolute;bottom:8vh;right:5.5vw;font-size:.78rem;letter-spacing:.2em;text-shadow:0 1px 8px rgba(2,3,10,.8)}
/* collimateur AF discret, mobile par scène */
.focus-box{position:absolute;top:46%;left:50%;width:140px;height:104px;margin:-52px 0 0 -70px;z-index:7;pointer-events:none;opacity:0}
.fb-corner{position:absolute;width:15px;height:15px;border-color:rgba(238,241,250,.85);border-style:solid;border-width:0}
.fb-corner--tl{top:0;left:0;border-top-width:2px;border-left-width:2px;border-top-left-radius:4px}
.fb-corner--tr{top:0;right:0;border-top-width:2px;border-right-width:2px;border-top-right-radius:4px}
.fb-corner--bl{bottom:0;left:0;border-bottom-width:2px;border-left-width:2px;border-bottom-left-radius:4px}
.fb-corner--br{bottom:0;right:0;border-bottom-width:2px;border-right-width:2px;border-bottom-right-radius:4px}
.fb-dot{position:absolute;top:50%;left:50%;width:5px;height:5px;border-radius:50%;background:rgba(238,241,250,.9);transform:translate(-50%,-50%)}
.focus-box.locked .fb-corner{border-color:var(--blue-light)}
.focus-box.locked .fb-dot{background:var(--blue-light);box-shadow:0 0 10px rgba(122,166,255,.9)}
.shutter{position:absolute;inset:0;z-index:9;pointer-events:none}
.shutter-half{position:absolute;left:0;right:0;height:50.5%;background:#010208}
.shutter-half--top{top:0;transform:scaleY(0);transform-origin:top}
.shutter-half--bottom{bottom:0;transform:scaleY(0);transform-origin:bottom}
.flash{position:absolute;inset:0;z-index:10;pointer-events:none;opacity:0;
  background:radial-gradient(circle at 50% 46%,#fff 0%,rgba(210,222,255,.9) 32%,rgba(122,166,255,.2) 62%,transparent 82%)}
.no-motion .vf-stage{height:auto;background:transparent}
.no-motion .scene{position:relative;visibility:visible;height:80svh}
.no-motion .hud,.no-motion .focus-box,.no-motion .shutter,.no-motion .flash,.no-motion .vf-optics,.no-motion .vf-grade{display:none}


/* ---------- viseur : mise en page mobile (photo en bande, texte dessous) ---------- */
@media (max-width:700px){
  .scene-photo{position:absolute;top:9vh;left:0;right:0;bottom:auto;height:52svh}
  .scene-shade{background:linear-gradient(0deg,rgba(5,7,17,.55) 0%,transparent 35%)}
  .scene--right .scene-shade{background:linear-gradient(0deg,rgba(5,7,17,.55) 0%,transparent 35%)}
  .scene-inner{top:calc(9vh + 52svh + 3vh);bottom:auto;left:6vw;right:6vw;max-width:none;text-align:left}
  .scene--right .scene-inner{left:6vw;right:6vw;text-align:left}
  .scene h3{font-size:clamp(1.5rem,7.5vw,2.2rem)}
  .focus-box{width:64px;height:52px;margin:-26px 0 0 -32px}
  .vf-optics{background:radial-gradient(ellipse 95% 90% at 50% 40%,transparent 70%,rgba(2,3,10,.55) 92%)}
  .vf-optics::after{box-shadow:inset 0 0 90px 16px rgba(2,3,10,.55)}
  /* HUD collé à la photo : cadres, REC, mode, EXIF et compteur sur la bande */
  .hud-corner{width:26px;height:26px}
  .hud-corner--tl{top:calc(9vh + 8px);left:3vw}
  .hud-corner--tr{top:calc(9vh + 8px);right:3vw}
  .hud-corner--bl{top:calc(9vh + 52svh - 34px);bottom:auto;left:3vw}
  .hud-corner--br{top:calc(9vh + 52svh - 34px);bottom:auto;right:3vw}
  .hud-rec{top:calc(9vh + 2vh);right:5vw;font-size:.6rem}
  .hud-mode{top:calc(9vh + 2vh);left:5vw;font-size:.6rem}
  .hud-exif{top:calc(9vh + 52svh - 4.6vh);bottom:auto;left:5vw;right:auto;justify-content:flex-start;gap:1.1rem;font-size:.58rem;padding:0}
  .hud-counter{top:calc(9vh + 52svh - 4.6vh);bottom:auto;right:5vw;font-size:.62rem}
  .flash{inset:auto;top:9vh;left:0;right:0;height:52svh}
}

/* ---------- pellicule ---------- */
.film{padding:12vh 0 10vh;border-top:1px solid var(--line);overflow:hidden}
.film-head{padding:0 4vw}
.film-cta{display:inline-flex;margin-top:1.8rem}
h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2rem,4.8vw,4rem);line-height:1.08;letter-spacing:.02em;margin-top:1.2rem}
h2 .script{font-size:1.05em}
.film-row{overflow:hidden;margin-top:2.2rem;cursor:grab}
.film-row.is-drag{cursor:grabbing}
.film-cell img{-webkit-user-drag:none;user-select:none}
.film-row + .film-row{margin-top:1px}
.film-track{display:flex;gap:1px;width:max-content;animation:filmL 78s linear infinite;will-change:transform}
.film-row--rev .film-track{animation-name:filmR}
.film-row:hover .film-track{animation-play-state:paused}
@keyframes filmL{to{transform:translateX(-50%)}}
@keyframes filmR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.film-cell{position:relative;flex:0 0 auto;width:min(270px,64vw);aspect-ratio:3/2;overflow:hidden;background:var(--night-2);margin:0;transition:width .55s cubic-bezier(.2,.8,.2,1)}
@media (pointer:fine){.film-cell:hover{width:min(292px,68vw)}}
.film-cell img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85);transition:filter .5s,transform .7s cubic-bezier(.2,.8,.2,1)}
.film-cell:hover img{filter:saturate(1.05);transform:scale(1.05)}
.film-cell figcaption{position:absolute;left:0;right:0;bottom:0;padding:2rem .9rem .7rem;
  background:linear-gradient(transparent,rgba(5,7,17,.85));
  font-family:var(--body);font-weight:700;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--chalk-dim);
  opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s}
.film-cell:hover figcaption{opacity:1;transform:none}

/* ---------- services ---------- */
.services{padding:14vh 4vw;border-top:1px solid var(--line)}
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin-top:5rem;border:1px solid var(--line)}
.service{background:var(--night);padding:5.4rem 1.8rem 3.6rem;position:relative;overflow:hidden;transition:background .4s}
.service:hover{background:var(--night-2)}
.service::before{content:"";position:absolute;top:0;left:0;height:2px;width:0;background:var(--grad);transition:width .5s ease}
.service:hover::before{width:100%}
.service::after{content:"";position:absolute;right:1rem;bottom:1rem;width:22px;height:22px;
  border-right:2px solid rgba(122,166,255,0);border-bottom:2px solid rgba(122,166,255,0);transition:border-color .4s}
.service:hover::after{border-color:rgba(122,166,255,.7)}
.service-index{position:absolute;top:1.2rem;right:1.4rem;font-family:var(--display);font-weight:400;font-size:3.4rem;line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(122,166,255,.25);transition:all .4s}
.service:hover .service-index{-webkit-text-stroke:1px rgba(122,166,255,0);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.service h4{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:1.2rem;letter-spacing:.03em;line-height:1.18;margin-bottom:1rem}
.service p{color:var(--chalk-dim);line-height:1.65;font-size:.92rem}
.service ul{list-style:none;margin-top:1.5rem}
.service li{font-family:var(--body);font-weight:700;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--chalk-dim);padding:.55rem 0;border-top:1px solid var(--line)}
.service-go{position:absolute;left:1.8rem;bottom:1.1rem;font-size:1.1rem;color:var(--blue-light);opacity:0;transform:translate(-6px,6px);transition:opacity .35s,transform .35s}
.service:hover .service-go{opacity:1;transform:none}
@media (max-width:1100px){.services-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- mur de références ---------- */
.partners{padding:14vh 4vw;border-top:1px solid var(--line);text-align:center}
.partners-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:4rem}
.partner{background:var(--night);padding:3rem 1.5rem;display:flex;align-items:center;justify-content:center;transition:background .4s}
.partner:hover{background:var(--night-2)}
.partner img{max-height:52px;max-width:82%;width:auto;filter:grayscale(1) brightness(1.9);opacity:.55;transition:filter .4s,opacity .4s}
.partner:hover img{filter:grayscale(0) brightness(1);opacity:1}
.partner span{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(.78rem,1.2vw,1rem);letter-spacing:.06em;
  color:rgba(238,241,250,.45);transition:color .4s,text-shadow .4s;white-space:nowrap}
.partner:hover span{color:var(--blue-light);text-shadow:0 0 24px rgba(122,166,255,.35)}
.partners-note{margin-top:1.6rem;font-family:var(--body);font-weight:700;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-dim)}

/* ---------- contact + formulaire ---------- */
.contact{padding:16vh 4vw 12vh;border-top:1px solid var(--line)}
.contact h2{max-width:16ch}
.cform{margin-top:4rem;max-width:820px;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.cform label{display:flex;flex-direction:column;gap:.5rem;font-family:var(--body);font-weight:700;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-light)}
.cform input,.cform select,.cform textarea{
  font-family:var(--body);font-size:.95rem;color:var(--chalk);
  background:rgba(12,18,38,.7);border:1px solid var(--line);border-radius:6px;
  padding:.9rem 1rem;transition:border-color .3s,box-shadow .3s;appearance:none}
.cform select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237AA6FF' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(101,143,255,.15);outline:none}
.cform textarea{min-height:130px;resize:vertical}
.cform .full{grid-column:1/-1}
.cform button{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:1rem;margin-top:.6rem;
  font-family:var(--body);font-weight:700;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--night);background:var(--grad);border:0;cursor:pointer;padding:1.2rem 2.4rem;border-radius:3rem;
  transition:transform .3s,box-shadow .3s}
.cform button:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(101,143,255,.4)}
.cform-note{grid-column:1/-1;font-size:.8rem;color:var(--chalk-dim)}
footer{padding:2.4rem 4vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  font-family:var(--body);font-weight:700;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-dim)}
.reveal{opacity:0;transform:translateY(40px)}

@media (max-width:900px){
  .nav-links{display:none}
  .logo-img{height:46px}
  .scene-inner{left:6vw;right:6vw;bottom:18vh}
  .scene--right .scene-inner{left:6vw;right:6vw}
  .hud-exif{gap:1.2rem;font-size:.6rem;flex-wrap:wrap;padding:0 16vw 0 5vw}
  .services-grid{grid-template-columns:1fr}
  .partners-grid{grid-template-columns:repeat(2,1fr)}
  .cform{grid-template-columns:1fr}
  .cform input,.cform select,.cform textarea{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .film-track{animation:none}
  .film-row{overflow-x:auto}
  .reveal{opacity:1;transform:none}
  .marquee-track,.hud-rec::before{animation:none}
  .hero-line>span{transform:none}
  *{scroll-behavior:auto}
}

/* ---------- entrée en scène (obturateur) ---------- */
.intro{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;pointer-events:none}
.intro-half{position:absolute;left:0;right:0;height:50.5%;background:#010208}
.intro-half--t{top:0;transform-origin:top}
.intro-half--b{bottom:0;transform-origin:bottom}
.intro-logo{height:96px;width:auto;position:relative;z-index:2;opacity:0}

/* quand GSAP pilote les défilements, les animations CSS s'effacent */
.js .marquee-track,.js .film-track{animation:none}
