/* Thomas Machicoane V8.9.2 — identité unifiée, Hero 16/9, stream animé et loader Jack Russell. */

/* Une seule image de logo, sans masque CSS ni cache rectangulaire. */
body.tm-site .header-logo>.tm-site-logo,
body.tm-site .footer-logo>.tm-site-logo,
body.tm-site .loader-wordmark>.tm-site-logo{
  display:block!important;width:100%!important;height:auto!important;max-height:none!important;
  margin:0!important;padding:0!important;border:0!important;background:transparent!important;
  object-fit:contain!important;object-position:center!important;clip-path:none!important;
  filter:drop-shadow(0 3px 14px #0009)!important;mix-blend-mode:normal!important;animation:none!important
}
body.tm-site .header-logo{width:var(--tm-logo-width,174px)!important}
body.tm-site .header-logo>.logo-tagline{margin:4px 0 0!important}
body.tm-site .footer-logo>.tm-site-logo{filter:none!important}

/* La fenêtre centrale est désormais un vrai paysage 16/9. */
body.tm-site .hero-video,body.tm-site .hero-fallback{
  top:50%!important;bottom:auto!important;left:50%!important;right:auto!important;
  width:var(--tm-hero-media-width-local,var(--tm-hero-media-width,58%))!important;
  height:auto!important;aspect-ratio:16/9!important;max-width:calc(100vw - 40px)!important;max-height:74vh!important;
  object-fit:cover!important;object-position:center!important;transform:translate(-50%,-50%) translateZ(0)!important
}
body.tm-site .hero-section.tm-hero-media-full .hero-video,
body.tm-site .hero-section.tm-hero-media-full .hero-fallback,
body.tm-site.tm-hero-media-full .hero-section:not(.tm-hero-media-centered) .hero-video,
body.tm-site.tm-hero-media-full .hero-section:not(.tm-hero-media-centered) .hero-fallback{
  top:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
  aspect-ratio:auto!important;transform:translateZ(0)!important
}
body.tm-site .hero-shade{
  background:linear-gradient(90deg,#060d0ef4 0%,#060d0ed5 28%,#060d0e35 52%,#060d0e9b 76%,#060d0ef4 100%),linear-gradient(0deg,#060d0ec4 0%,transparent 54%)!important
}

/* Stream SoundCloud : double onde, progression réelle et tête de lecture. */
body.tm-site .waveform{position:relative!important;isolation:isolate!important;--tm-stream-progress:0%}
body.tm-site .waveform__layer{
  position:absolute!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:stretch!important;
  gap:5px!important;pointer-events:none!important
}
body.tm-site .waveform__layer i{
  flex:1 1 0!important;display:block!important;width:auto!important;min-width:3px!important;max-width:11px!important;
  transform-origin:center!important;animation-delay:calc(var(--bar-index,0) * -22ms)!important
}
body.tm-site .waveform__base i{background:var(--tm-wave-color-local,var(--tm-wave-color,#2c2412))!important;opacity:.78!important}
body.tm-site .waveform__played{
  z-index:2!important;clip-path:inset(0 calc(100% - var(--tm-stream-progress)) 0 0)!important;
  filter:drop-shadow(0 0 7px var(--tm-stream-color,var(--tm-section-accent,#967100)))!important
}
body.tm-site .waveform__played i{background:var(--tm-stream-color,var(--tm-section-accent,var(--v8-yellow,#967100)))!important;opacity:1!important}
body.tm-site .waveform__head{
  position:absolute!important;z-index:4!important;top:5px!important;bottom:5px!important;left:var(--tm-stream-progress)!important;
  width:1px!important;background:var(--v8-paper,#e8e2d9)!important;box-shadow:0 0 0 3px #e8e2d912,0 0 12px #e8e2d9a6!important;
  transform:translateX(-1px)!important;transition:left .14s linear!important;pointer-events:none!important
}
body.tm-site .waveform__head:before{
  content:"";position:absolute;left:50%;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--tm-stream-color,var(--tm-section-accent,var(--v8-yellow,#967100)));transform:translateX(-50%)
}
body.tm-site .waveform.is-playing .waveform__layer i{animation:tm892StreamDance .56s ease-in-out infinite alternate!important}
body.tm-site .waveform.is-playing .waveform__played i{animation-duration:.42s!important}
body.tm-site .disc-button.is-playing{animation:tm892DiscTurn 4.5s linear infinite!important}
@keyframes tm892StreamDance{from{transform:scaleY(.38)}to{transform:scaleY(1)}}
@keyframes tm892DiscTurn{to{transform:rotate(360deg)}}

/* Loader : le chien avance réellement avec la valeur de chargement. */
body.tm-site .site-loader{
  --tm-loader-progress:0;display:grid!important;place-items:center!important;padding:24px!important;
  background:var(--tm-loader-bg,var(--v8-ink,#060d0e))!important;color:var(--v8-paper,#e8e2d9)!important
}
body.tm-site .loader-stage{
  position:relative!important;width:min(940px,92vw)!important;height:min(520px,78vh)!important;
  display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;overflow:visible!important
}
body.tm-site .loader-wordmark{position:absolute!important;z-index:3!important;top:1%!important;left:50%!important;width:min(190px,35vw)!important;transform:translateX(-50%)!important;text-align:center!important}
body.tm-site .loader-wordmark span{display:block;margin-top:5px;color:var(--v8-yellow,#967100);font:700 6px/1 Arial,sans-serif;letter-spacing:.32em;text-transform:uppercase}
body.tm-site .loader-route{position:relative!important;width:100%!important;height:min(285px,45vh)!important;margin-top:56px!important}
body.tm-site .loader-route__line{position:absolute;left:1%;right:1%;bottom:28px;height:2px;background:repeating-linear-gradient(90deg,#e8e2d936 0 20px,transparent 20px 31px);transform:rotate(-1deg)}
body.tm-site .loader-route__line:before{content:"";position:absolute;left:0;top:-3px;width:calc(var(--tm-loader-progress) * 1%);height:6px;background:var(--tm-loader-track,var(--v8-yellow,#967100));clip-path:polygon(0 25%,96% 0,100% 60%,93% 100%,0 74%);transition:width .18s linear}
body.tm-site .loader-skater{
  position:absolute!important;z-index:4!important;left:calc(var(--tm-loader-progress) * 1%)!important;bottom:12px!important;
  width:min(var(--tm-loader-dog-size,310px),40vw)!important;transform:translateX(calc(var(--tm-loader-progress) * -1%)) rotate(-1deg)!important;
  transition:left .18s linear,transform .18s linear!important;filter:drop-shadow(11px 13px 0 #0006)!important
}
body.tm-site .loader-skater img{display:block;width:100%;height:auto;animation:tm892SkateBounce .38s steps(2,end) infinite}
body.tm-site .loader-skater:after{content:"";position:absolute;left:-16%;bottom:4%;width:22%;height:17%;background:repeating-linear-gradient(9deg,var(--v8-yellow,#967100) 0 2px,transparent 2px 8px);clip-path:polygon(0 0,100% 35%,82% 100%,8% 72%);opacity:.8}
body.tm-site .loader-route__dash{position:absolute;width:54px;height:9px;border-top:3px solid var(--v8-paper,#e8e2d9);opacity:.56;transform:rotate(-12deg)}
body.tm-site .loader-route__dash--one{left:12%;top:30%}.loader-route__dash--two{right:14%;top:14%}
body.tm-site .loader-route__note{position:absolute;right:8%;top:28%;color:var(--v8-yellow,#967100);font:italic 42px/1 Georgia,serif;animation:tm892NotePop .7s steps(2,end) infinite alternate}
body.tm-site .loader-meta{width:100%;display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #e8e2d91f;font:700 8px/1 Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase}
body.tm-site .loader-meta b{color:var(--v8-yellow,#967100);font:italic 26px/1 Georgia,serif;font-weight:400;letter-spacing:-.04em}
@keyframes tm892SkateBounce{to{transform:translateY(-5px) rotate(.6deg)}}
@keyframes tm892NotePop{to{transform:translateY(-9px) rotate(7deg) scale(1.12)}}

@media(max-width:780px){
  body.tm-site .hero-video,body.tm-site .hero-fallback{width:calc(100vw - 32px)!important;max-width:none!important;max-height:52vh!important}
  body.tm-site .hero-content{padding-top:116px!important;padding-bottom:54px!important;justify-content:flex-end!important}
  body.tm-site .hero-content h1{width:96%!important}
  body.tm-site .loader-stage{width:94vw!important;height:min(460px,74vh)!important}
  body.tm-site .loader-route{height:230px!important}
  body.tm-site .loader-skater{width:min(250px,56vw)!important}
  body.tm-site .waveform__layer{gap:3px!important}
}
@media(prefers-reduced-motion:reduce){
  body.tm-site .loader-skater img,body.tm-site .loader-route__note,body.tm-site .waveform__layer i,body.tm-site .disc-button{animation:none!important}
}
