/* Arno N. – Motion · v3 (DA bleu nuit + turquoise, Urbanist) */
:root{
  --bg:#060C10;
  --surface:#0B161B;
  --surface-2:#0F1E24;
  --line:#18272D;
  --border:#22363D;
  --text:#EEF4F5;
  --muted:#8FA3A8;
  --accent:#46D9E0;
  --accent-ink:#04181B;
  --glow:#0E3B47;
  --fd:"Urbanist",system-ui,sans-serif;
  --fb:"Plus Jakarta Sans",system-ui,sans-serif;
  --pad:clamp(16px,4vw,48px);
  --max:1200px;
  --r:16px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:var(--fb);font-size:16px;line-height:1.6;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--fd);font-weight:800;letter-spacing:-.035em;line-height:1.05}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
::selection{background:var(--accent);color:var(--accent-ink)}
.hl{color:var(--accent)}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:12px;border:1px solid var(--border);
  background:transparent;color:var(--text);font:600 15px/1 var(--fb);text-decoration:none;cursor:pointer;
  transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease)}
.btn:hover{border-color:var(--muted)}
.btn--accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn--accent:hover{background:#7BE6EB;border-color:#7BE6EB}
.btn--small{min-height:36px;padding:0 14px;font-size:14px;border-radius:10px}
.btn--big{min-height:54px;padding:0 28px;font-size:16px}

/* en-tête */
.top{position:fixed;inset:0 0 auto;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:16px var(--pad);
  background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
.top.is-scrolled{border-bottom-color:var(--line)}
.logo{font:800 20px/1 var(--fd);letter-spacing:-.02em;text-decoration:none}
.nav{display:flex;gap:28px;align-items:center;font-size:15px}
.nav a:not(.btn){text-decoration:none;color:var(--muted);transition:color .2s}
.nav a:not(.btn):hover{color:var(--text)}

/* hero */
.hero{position:relative;overflow:hidden;padding:150px var(--pad) 0;text-align:center;
  background:
    radial-gradient(60% 50% at 50% 0%,var(--glow),transparent 70%),
    linear-gradient(var(--line) 1px,transparent 1px) 0 0/72px 72px,
    linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/72px 72px}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 30%,transparent,var(--bg) 85%);pointer-events:none}
.hero__in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.who{display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border:1px solid var(--border);border-radius:99px;background:var(--surface);color:var(--muted);font-size:14px;margin-bottom:28px}
.who__dot{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#1b6c75);position:relative}
.who__dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--accent);opacity:.5;animation:ping 2.4s var(--ease) infinite}
@keyframes ping{from{transform:scale(.8);opacity:.6}to{transform:scale(1.5);opacity:0}}
.hero h1{font-size:clamp(40px,6vw,86px);max-width:none;line-height:1.02;letter-spacing:-.045em}
.hero__sub{color:var(--muted);max-width:52ch;margin:24px 0 32px;font-size:18px}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* mots qui montent au chargement */
.reveal-words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.reveal-words .w > span{display:inline-block;transform:translateY(105%);animation:up .9s var(--ease) forwards;animation-delay:calc(var(--i) * 70ms + 100ms)}
@keyframes up{to{transform:none}}

/* éventail */
.fan{position:relative;z-index:1;width:min(980px,100%);margin:64px auto 0;height:clamp(220px,34vw,380px)}
.fan__main{position:absolute;left:50%;bottom:-70px;width:62%;aspect-ratio:16/9;transform:translateX(-50%) translateY(60px);opacity:0;z-index:2;
  border-radius:var(--r);overflow:hidden;border:1px solid var(--border);background:#000;box-shadow:0 40px 100px -30px #000,0 0 0 6px #ffffff08;
  animation:fanIn 1.1s var(--ease) .5s forwards}
.fan__main video{width:100%;height:100%;object-fit:cover}
.fan__side{position:absolute;bottom:-60px;width:20%;height:auto;border-radius:12px;border:1px solid var(--border);box-shadow:0 30px 80px -20px #000;opacity:0}
.fan__side--l{left:3%;--rot:-8deg;animation:sideIn 1.1s var(--ease) .75s forwards}
.fan__side--r{right:3%;--rot:8deg;animation:sideIn 1.1s var(--ease) .85s forwards}
@keyframes fanIn{to{transform:translateX(-50%);opacity:1}}
@keyframes sideIn{from{transform:translateY(80px) rotate(0)}to{transform:rotate(var(--rot));opacity:1}}

/* bandeau */
.strip{position:relative;z-index:3;border-block:1px solid var(--line);background:var(--bg);overflow:hidden;padding:20px 0}
.strip__run{display:flex;width:max-content;animation:tick 40s linear infinite;font:700 clamp(18px,2vw,24px)/1 var(--fd);color:var(--muted);letter-spacing:-.01em}
.strip__run span{display:inline-flex;align-items:center;gap:36px;padding-right:36px;white-space:nowrap}
.strip__run span::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}
@keyframes tick{to{transform:translateX(-50%)}}

/* blocs */
.block{max-width:calc(var(--max) + 2 * var(--pad));margin:0 auto;padding:clamp(72px,10vw,128px) var(--pad) 0}
.block__head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;margin-bottom:40px}
.block__head h2{font-size:clamp(34px,4.6vw,60px)}
.block__head p{color:var(--muted);max-width:56ch}

/* filtres */
.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:28px}
.chip{min-height:40px;padding:0 16px;border-radius:99px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font:500 14px var(--fb);cursor:pointer;transition:all .2s}
.chip:hover{color:var(--text)}
.chip[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}

/* grille de projets */
.grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-flow:dense;gap:20px}
.card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;border-radius:var(--r);border:1px solid var(--border);background:var(--surface);overflow:hidden;
  transition:border-color .3s,transform .4s var(--ease)}
.card:hover{border-color:#2f4a52;transform:translateY(-4px)}
.card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.card--wide{grid-column:span 2}
.card[hidden]{display:none}
.card__media{position:relative;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(70% 70% at 50% 0%,var(--glow),transparent 75%),var(--surface-2)}
.card--wide .card__media{aspect-ratio:auto;height:100%;min-height:300px}
.card__shot{position:relative;height:84%;max-width:88%;border-radius:10px;overflow:hidden;box-shadow:0 24px 60px -20px #000;border:1px solid #ffffff14;transition:transform .5s var(--ease)}
.card__shot--wide{height:auto;width:88%}
.card:hover .card__shot{transform:scale(1.03)}
.card__shot img,.card__shot video{width:100%;height:100%;object-fit:cover}
.card__shot video{position:absolute;inset:0;opacity:0;transition:opacity .3s}
.card.is-playing .card__shot video{opacity:1}
.badges{position:absolute;top:14px;left:14px;display:flex;gap:6px;flex-wrap:wrap;z-index:2}
.badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;background:#060c10cc;border:1px solid var(--border);color:var(--muted);backdrop-filter:blur(6px)}
.badge--concept{color:var(--accent);border-color:#2a5d63}
.play{position:absolute;right:14px;bottom:14px;width:44px;height:44px;border-radius:50%;background:var(--accent);z-index:2;
  display:grid;place-items:center;transform:scale(.85);opacity:0;transition:all .3s var(--ease)}
.play::before{content:"";border-left:12px solid var(--accent-ink);border-block:7px solid transparent;margin-left:3px}
.card:hover .play,.card:focus-visible .play{transform:none;opacity:1}
.card__info{display:flex;flex-direction:column;gap:4px;padding:18px 20px 22px}
.card__type{font-size:13px;color:var(--accent);font-weight:600}
.card__title{font:800 24px/1.1 var(--fd);letter-spacing:-.025em}
.card__sum{color:var(--muted);font-size:14.5px;line-height:1.5}
.card--wide{flex-direction:row}
.card--wide .card__media{flex:1.5}
.card--wide .card__info{flex:1;justify-content:flex-end;padding:28px}
.card--wide .card__title{font-size:32px}
.card--cta{justify-content:space-between;padding:28px;background:radial-gradient(80% 70% at 100% 0%,var(--glow),transparent 70%),var(--surface)}
.card--cta .card__title{font-size:30px;margin:8px 0}
.card--cta .card__info{padding:0}
.arrow{align-self:flex-start;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:22px;font-weight:700}

/* services */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card-s{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:30px 28px}
.card-s__len{display:inline-block;font:700 14px var(--fb);color:var(--accent);background:#46d9e014;border:1px solid #2a5d63;padding:5px 12px;border-radius:99px}
.card-s h3{font-size:26px;margin:20px 0 10px}
.card-s > p:not(.card-s__len){color:var(--muted)}
.card-s ul{list-style:none;margin-top:22px;display:grid;gap:10px}
.card-s li{display:flex;gap:10px;align-items:baseline;font-size:15px}
.card-s li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--accent);transform:translateY(-2px)}

/* méthode */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.steps li{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:26px 24px;position:relative}
.steps__n{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#46d9e014;border:1px solid #2a5d63;color:var(--accent);font:800 17px var(--fd);margin-bottom:20px}
.steps h3{font-size:22px;margin-bottom:8px}
.steps p{color:var(--muted);font-size:15px}

/* contact */
#contact{padding-bottom:clamp(72px,10vw,128px)}
.contact{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;border:1px solid var(--border);border-radius:24px;padding:clamp(28px,5vw,56px);
  background:radial-gradient(60% 80% at 0% 0%,var(--glow),transparent 70%),var(--surface)}
.contact h2{font-size:clamp(36px,4.6vw,60px);margin-bottom:18px}
.contact__text > p{color:var(--muted);max-width:40ch}
.mail{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:28px 0 14px;font:700 clamp(18px,2vw,22px) var(--fd);word-break:break-all}
.contact__alt{color:var(--muted)}
.contact__alt a{color:var(--text)}
.form{display:grid;gap:16px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:grid;gap:8px;font-size:14px;font-weight:500;color:var(--muted)}
.form input,.form select,.form textarea{font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:13px 14px;transition:border-color .2s}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--accent)}
.form textarea{resize:vertical}
.form button{justify-self:start;margin-top:6px}
.hp{position:absolute;left:-9999px}

/* pied de page */
.foot{display:flex;justify-content:space-between;gap:16px;padding:28px var(--pad);border-top:1px solid var(--line);color:var(--muted);font-size:14px}

/* lecteur */
.player{margin:auto;border:1px solid var(--border);padding:0;background:var(--surface);color:var(--text);width:min(1100px,94vw);max-height:94vh;border-radius:var(--r);overflow:auto}
.player::backdrop{background:#03070acc;backdrop-filter:blur(8px)}
.player[open]{animation:pop .4s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.98)}}
.player__bar{display:flex;align-items:center;gap:16px;padding:16px 20px}
.player__bar > div:first-child{flex:1}
.player__type{font-size:13px;color:var(--accent);font-weight:600}
.player h3{font-size:26px}
.player__formats{display:flex;gap:6px}
.player__formats button{min-height:36px;padding:0 12px;border-radius:99px;border:1px solid var(--border);background:none;color:var(--muted);font:500 13px var(--fb);cursor:pointer}
.player__formats button[aria-pressed="true"]{background:var(--text);color:var(--bg)}
.player__close{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:none;color:var(--text);font-size:24px;cursor:pointer}
.player__stage{background:#000;display:flex;justify-content:center}
.player__stage video{max-height:72vh;width:auto;max-width:100%}
.player__desc{padding:16px 20px 22px;color:var(--muted);max-width:75ch}

/* page merci */
.merci{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;padding:var(--pad);
  background:radial-gradient(60% 50% at 50% 0%,var(--glow),transparent 70%)}
.merci h1{font-size:clamp(34px,5vw,60px);max-width:16ch}
.merci p{color:var(--muted)}

/* responsive */
@media (max-width:980px){
  .grid{grid-template-columns:1fr 1fr}
  .card--wide{grid-column:span 2}
  .services,.steps{grid-template-columns:1fr 1fr}
  .contact{grid-template-columns:1fr}
}
@media (max-width:680px){
  .nav a:not(.btn){display:none}
  .hero{padding-top:120px}
  .hero__sub{font-size:16px}
  .fan{margin-top:48px}
  .fan__main{width:78%;bottom:-40px}
  .fan__side{width:26%;bottom:-30px}
  .grid,.services,.steps{grid-template-columns:1fr}
  .card--wide{grid-column:auto;flex-direction:column}
  .card--wide .card__media{min-height:0;aspect-ratio:4/3}
  .card--wide .card__info{padding:18px 20px 22px}
  .card--wide .card__title{font-size:24px}
  .play{opacity:1;transform:none}
  .form .row{grid-template-columns:1fr}
  .foot{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal-words .w > span{transform:none}
  .fan__main{transform:translateX(-50%);opacity:1}
  .fan__side{opacity:1;transform:rotate(var(--rot))}
}
@media (max-width:680px){.br-d{display:none}}
@media (max-width:680px){.fan{height:250px;margin-top:40px}.fan__main{width:82%;bottom:-10px}.fan__side{width:28%;bottom:10px}.hero__cta .btn{min-width:240px}}
/* survol du titre */
.reveal-words .l{display:inline-block;transform-origin:50% 100%;transition:transform .45s cubic-bezier(.3,1.5,.5,1),color .25s}
.reveal-words.is-settled .w{overflow:visible}
.reveal-words.is-settled .w > span{animation:none;transform:none}
.reveal-words .l.is-hot{color:var(--accent)}
.reveal-words .hl .l.is-hot{color:#E9FDFE}
