/* ============ Tokens ============ */
:root{
  --bg:#07060a;
  --ink:#ecebef;
  --accent:#a88ad0;
  --accent-hover:#c7b3e6;
  --accent-deep:#5b2a86;
  --muted-1:#bdb8c8;
  --muted-2:#8a8496;
  --muted-3:#6d6878;
  --muted-4:#5d5868;
  --muted-5:#4a4655;
  --line-1:#1c1a22;
  --line-2:#2a2733;
  --line-3:#3a2a4f;
  --line-4:#3a3645;
  --panel-1:#0e0a16;
  --panel-2:#0b0810;
  --panel-3:#140e1f;
  --panel-4:#170926;
  --panel-5:#2e1349;
  --panel-6:#24103a;
  --panel-6-hover:#3a1a5a;
  --error:#e08a9a;
  --error-line:#a0485a;
  --font-display:'Unbounded',sans-serif;
  --font-body:'Hanken Grotesk',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',monospace;
}

/* ============ Reset / base ============ */
*{box-sizing:border-box}
[hidden]{display:none !important}
.dmn-defs{position:absolute}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--accent-hover)}
::selection{background:var(--accent-deep);color:#fff}
button{font-family:inherit}
img{max-width:100%;display:block}

/* ============ Keyframes ============ */
@keyframes dmnMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes dmnDrift{0%{transform:translate(-8%,-4%) scale(1.05)}50%{transform:translate(6%,3%) scale(1.12)}100%{transform:translate(-8%,-4%) scale(1.05)}}
@keyframes dmnScroll{0%{transform:translateY(-100%)}100%{transform:translateY(200%)}}
@keyframes dmnPulse{0%,100%{opacity:.35}50%{opacity:1}}

/* ============ Noise overlay ============ */
.dmn-noise{
  position:fixed;inset:0;pointer-events:none;z-index:90;
  opacity:.07;mix-blend-mode:overlay;
  background-image:url('data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27160%27 height=%27160%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%27.9%27 numOctaves=%272%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23n)%27/%3E%3C/svg%3E');
}

/* ============ Shared type ============ */
.dmn-label{
  font:500 11px var(--font-mono);letter-spacing:.26em;color:var(--accent);
}
.dmn-label--inline{font-size:11px}
.dmn-h2{
  margin:0;font-family:var(--font-display);font-weight:400;
  font-size:clamp(28px,4vw,52px);line-height:1.05;
}
.dmn-h2--wide{max-width:900px}
.dmn-h2--big{font-size:clamp(30px,4.4vw,58px);line-height:1.02}

.dmn-section{
  padding:clamp(100px,12vw,180px) clamp(20px,6vw,96px);
  max-width:1440px;margin:0 auto;box-sizing:border-box;
}

[data-reveal]{
  opacity:0;transform:translateY(30px);
  transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1);
}
[data-reveal].is-visible{opacity:1;transform:none}

/* ============ Header ============ */
.dmn-header{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px clamp(20px,4vw,48px);
  transition:transform .6s cubic-bezier(.2,.8,.2,1),background .4s,backdrop-filter .4s;
  transform:translateY(0);
  background:rgba(7,6,10,0);
}
.dmn-header.is-scrolled{
  background:rgba(7,6,10,.55);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
}
.dmn-header.is-hidden{transform:translateY(-110%)}

.dmn-logo{display:flex;align-items:center}
.dmn-logo__mark{width:64px;height:16px}

.dmn-header__actions{display:flex;align-items:center;gap:28px}
.dmn-invite{
  font:500 10.5px var(--font-mono);letter-spacing:.24em;color:#a88ad0;
}
.dmn-menu-btn{
  background:none;border:none;color:var(--ink);cursor:pointer;
  display:flex;align-items:center;gap:12px;
  font:500 10.5px var(--font-mono);letter-spacing:.24em;padding:8px 0;
}
.dmn-menu-btn__icon{display:flex;flex-direction:column;gap:5px}
.dmn-menu-btn__icon span{display:block;height:1px;background:var(--ink)}
.dmn-menu-btn__icon span:first-child{width:22px}
.dmn-menu-btn__icon span:last-child{width:14px;margin-left:8px}

/* ============ Fullscreen menu ============ */
.dmn-menu{
  position:fixed;inset:0;z-index:70;background:var(--bg);
  display:flex;flex-direction:column;justify-content:center;
  padding:0 clamp(24px,8vw,120px);gap:6px;
  transition:clip-path .8s cubic-bezier(.7,0,.2,1);
  clip-path:inset(0 0 100% 0);
}
.dmn-menu.is-open{clip-path:inset(0 0 0 0)}
.dmn-menu__item{
  display:flex;align-items:baseline;gap:24px;padding:10px 0;
  border-bottom:1px solid var(--line-1);
}
.dmn-menu__item:hover{color:var(--accent)}
.dmn-menu__num{font:500 11px var(--font-mono);color:var(--muted-3);letter-spacing:.2em}
.dmn-menu__title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(30px,6vw,72px);line-height:1.05;letter-spacing:.01em;
}
.dmn-menu__foot{
  margin-top:40px;font:400 11px var(--font-mono);letter-spacing:.2em;color:var(--muted-3);
}

/* ============ Hero ============ */
.dmn-hero{
  position:relative;height:100vh;min-height:640px;overflow:hidden;
  display:flex;align-items:flex-end;
}
.dmn-hero__gradient{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 40%,#2e1349 0%,#170926 50%,#07060a 100%);
}
.dmn-hero__drift{
  position:absolute;inset:-10%;
  background:radial-gradient(circle at 30% 40%,rgba(91,42,134,.55),transparent 40%),
             radial-gradient(circle at 70% 60%,rgba(168,138,208,.18),transparent 35%);
  animation:dmnDrift 18s ease-in-out infinite;
}
.dmn-hero__video{position:absolute;inset:0}
.dmn-hero__video-el{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;pointer-events:none;opacity:.85;
}
.dmn-hero__cover{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 50% 40%,#2e1349 0%,#170926 50%,#07060a 100%);
  opacity:1;transition:opacity .25s linear;
}
.dmn-hero__cover.is-hidden{opacity:0}

.dmn-hero__scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,6,10,.55) 0%,rgba(7,6,10,.1) 35%,rgba(7,6,10,.2) 60%,#07060a 100%);
}

.dmn-hero__content{
  position:relative;width:100%;
  padding:0 clamp(20px,4vw,48px) 44px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:24px;align-items:end;
}
.dmn-hero__title{
  margin:0;font-family:var(--font-display);font-weight:300;
  font-size:clamp(28px,4vw,54px);line-height:1.05;letter-spacing:.01em;
  text-wrap:balance;
}
.dmn-hero__title span{color:var(--accent)}
.dmn-hero__side{display:flex;flex-direction:column;gap:14px;align-items:flex-end;text-align:right}
.dmn-hero__sub{margin:0;font-size:15px;line-height:1.6;color:var(--muted-1);max-width:380px}
.dmn-hero__scroll{
  display:flex;align-items:center;gap:12px;
  font:500 10px var(--font-mono);letter-spacing:.26em;color:var(--muted-2);
}
.dmn-hero__scroll-track{
  position:relative;display:block;width:1px;height:44px;background:var(--line-2);overflow:hidden;
}
.dmn-hero__scroll-track span{
  position:absolute;left:0;top:0;width:1px;height:50%;background:var(--ink);
  animation:dmnScroll 1.8s ease-in-out infinite;
}

/* ============ Marquee ============ */
.dmn-marquee{
  border-top:1px solid var(--line-1);border-bottom:1px solid var(--line-1);
  overflow:hidden;padding:22px 0;background:var(--bg);
}
.dmn-marquee__track{
  display:flex;width:max-content;animation:dmnMarquee 38s linear infinite;
}
.dmn-marquee__item{
  display:flex;align-items:center;gap:40px;padding-right:40px;
  font-family:var(--font-display);font-weight:300;font-size:22px;letter-spacing:.14em;
  color:var(--muted-5);white-space:nowrap;
}
.dmn-marquee__item::after{
  content:'';width:6px;height:6px;background:var(--accent-deep);transform:rotate(45deg);
}

/* ============ Maison / Manifeste ============ */
.dmn-maison__lead{
  margin:36px 0 0;font-family:var(--font-display);font-weight:300;
  font-size:clamp(24px,3.4vw,46px);line-height:1.25;letter-spacing:.005em;
  text-wrap:pretty;
}
.dmn-maison__lead span{color:var(--muted-3)}
.dmn-facts{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;
  background:var(--line-1);margin-top:clamp(60px,8vw,110px);border:1px solid var(--line-1);
}
.dmn-fact{background:var(--bg);padding:30px 26px;display:flex;flex-direction:column;gap:10px}
.dmn-fact__value{font-family:var(--font-display);font-weight:300;font-size:40px;line-height:1}
.dmn-fact__label{font-size:13px;line-height:1.5;color:var(--muted-2)}

/* ============ Garage ============ */
.dmn-garage{
  position:relative;padding:clamp(80px,10vw,140px) 0;
  background:linear-gradient(180deg,#07060a,#0e0a16 30%,#0e0a16 70%,#07060a);
}
.dmn-garage__inner{
  padding:0 clamp(20px,6vw,96px);max-width:1440px;margin:0 auto;box-sizing:border-box;
  display:flex;flex-direction:column;gap:40px;
}
.dmn-garage__head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;
}
.dmn-garage__head>div:first-child{display:flex;flex-direction:column;gap:18px}
.dmn-garage__nav{display:flex;gap:10px;align-items:center}
.dmn-garage__counter{
  font:500 11px var(--font-mono);letter-spacing:.2em;color:var(--muted-2);margin-right:10px;
}
.dmn-round-btn{
  width:52px;height:52px;border-radius:50%;border:1px solid var(--line-2);
  background:transparent;color:var(--ink);cursor:pointer;font-size:18px;
  transition:border-color .3s,background .3s;
}
.dmn-round-btn:hover{border-color:var(--accent);background:var(--panel-3)}

.dmn-garage__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,560px),1fr));
  gap:clamp(24px,3vw,48px);align-items:stretch;
}

.dmn-bay-visual{
  position:relative;aspect-ratio:16/10;border-radius:4px;overflow:hidden;
  background:var(--panel-2);border:1px solid var(--line-1);
  align-self:start;
}
.dmn-bay-images{position:absolute;inset:0}
.dmn-bay-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  opacity:0;transform:scale(1.08);
  transition:opacity .9s ease,transform 1.6s cubic-bezier(.2,.8,.2,1);
}
.dmn-bay-img.is-active{opacity:1;transform:scale(1)}
.dmn-bay-visual__shade{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(7,6,10,.8));
}
.dmn-bay-door{
  position:absolute;inset:0;pointer-events:none;
  transform:translateY(-102%);
  transition:transform .55s cubic-bezier(.7,0,.3,1);
  background:repeating-linear-gradient(180deg,#1a1622 0 26px,#0d0a12 26px 28px,#231d2d 28px 30px);
  box-shadow:0 10px 30px rgba(0,0,0,.7);
}
.dmn-bay-door.is-closed{transform:translateY(0)}
.dmn-bay-door__handle{
  position:absolute;left:50%;bottom:22px;transform:translateX(-50%);
  width:120px;height:8px;border-radius:4px;background:#2a2433;
}
.dmn-bay-caption{
  position:absolute;left:22px;bottom:18px;right:22px;
  display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none;
}
.dmn-bay-caption__num{
  font-family:var(--font-display);font-weight:300;font-size:clamp(60px,9vw,120px);
  line-height:.8;color:rgba(236,235,239,.12);
}
.dmn-bay-caption__tag{
  font:500 10px var(--font-mono);letter-spacing:.22em;color:var(--muted-1);
  display:flex;align-items:center;gap:8px;
}
.dmn-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:dmnPulse 1.6s infinite}

.dmn-bay-info{
  display:flex;flex-direction:column;justify-content:space-between;gap:32px;
  opacity:1;transform:translateY(0);
  transition:opacity .5s,transform .7s cubic-bezier(.2,.8,.2,1);
}
.dmn-bay-info.is-hidden{opacity:0;transform:translateY(18px)}
.dmn-bay-info__top{display:flex;flex-direction:column;gap:18px}
.dmn-bay-info__row{display:flex;align-items:center;gap:14px}
.dmn-rule{height:1px;flex:1;background:var(--line-2)}
.dmn-bay-info__car{
  font-family:var(--font-display);font-weight:400;font-size:clamp(28px,3.4vw,46px);line-height:1.05;
}
.dmn-bay-info__desc{font-size:15px;line-height:1.65;color:var(--muted-1);max-width:520px}

.dmn-bay-stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);
}
.dmn-bay-stat{padding:20px 0;display:flex;flex-direction:column;gap:6px}
.dmn-bay-stat__v{font-family:var(--font-display);font-weight:300;font-size:clamp(24px,2.6vw,34px);line-height:1}
.dmn-bay-stat__l{font:500 10px var(--font-mono);letter-spacing:.2em;color:var(--muted-2)}

.dmn-bay-list{display:flex;flex-direction:column;gap:2px}
.dmn-bay-list__item{
  display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:16px;align-items:center;
  padding:13px 0;background:none;border:none;border-bottom:1px solid var(--line-1);
  color:var(--muted-4);cursor:pointer;text-align:left;
  transition:color .3s,padding-left .4s;width:100%;
}
.dmn-bay-list__item:hover{color:var(--ink)}
.dmn-bay-list__item.is-active{color:var(--ink);padding-left:14px}
.dmn-bay-list__bay{font:500 10px var(--font-mono);letter-spacing:.2em}
.dmn-bay-list__car{
  font-family:var(--font-display);font-weight:300;font-size:14px;letter-spacing:.04em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dmn-bay-list__prog{font:500 10px var(--font-mono);letter-spacing:.2em}

.dmn-garage__note{font:400 11px var(--font-mono);letter-spacing:.12em;color:var(--muted-5)}

/* ============ Programmes ============ */
.dmn-programmes__head{display:flex;flex-direction:column;gap:18px;margin-bottom:48px}
.dmn-programmes__list{display:flex;flex-direction:column;border-top:1px solid var(--line-1)}
.dmn-programme-row{
  position:relative;display:grid;grid-template-columns:60px minmax(0,1.1fr) minmax(0,1fr);
  gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line-1);
  transition:padding .5s cubic-bezier(.2,.8,.2,1);cursor:default;overflow:hidden;
}
.dmn-programme-row::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(91,42,134,.28),rgba(91,42,134,0) 70%);
  opacity:0;transition:opacity .5s;pointer-events:none;
}
.dmn-programme-row:hover{padding:34px 0}
.dmn-programme-row:hover::before{opacity:1}
.dmn-programme-row__i{position:relative;font:500 11px var(--font-mono);letter-spacing:.2em;color:var(--muted-3)}
.dmn-programme-row__n{
  position:relative;font-family:var(--font-display);font-weight:400;
  font-size:clamp(24px,3.4vw,48px);line-height:1;letter-spacing:.02em;
  color:var(--muted-3);transition:color .4s;
}
.dmn-programme-row:hover .dmn-programme-row__n{color:var(--ink)}
.dmn-programme-row__d{position:relative;font-size:14px;line-height:1.55;color:var(--muted-2)}

/* ============ Atelier ============ */
.dmn-atelier{
  position:relative;padding:clamp(80px,10vw,140px) clamp(20px,6vw,96px);
  background:var(--panel-2);border-top:1px solid var(--line-1);border-bottom:1px solid var(--line-1);
}
.dmn-atelier__inner{max-width:1440px;margin:0 auto;display:flex;flex-direction:column;gap:40px}
.dmn-atelier__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.dmn-atelier__head>div:first-child{display:flex;flex-direction:column;gap:18px}
.dmn-atelier__intro{margin:0;font-size:14px;line-height:1.6;color:var(--muted-2);max-width:420px}

.dmn-atelier__viewer{
  position:relative;height:clamp(420px,62vh,720px);border-radius:4px;overflow:hidden;
  border:1px solid var(--line-1);
  background:radial-gradient(ellipse at 50% 30%,#1d1029,#0b0810 70%);
}
.dmn-atelier__model{
  position:absolute;inset:0;width:100%;height:100%;
  --poster-color:transparent;
}
.dmn-atelier__watermark{
  position:absolute;left:18px;top:16px;
  font:500 10px var(--font-mono);letter-spacing:.22em;color:var(--muted-3);pointer-events:none;
}

.dmn-spaces{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;
  background:var(--line-1);border:1px solid var(--line-1);
}
.dmn-space{background:var(--panel-2);padding:28px 26px;display:flex;flex-direction:column;gap:10px}
.dmn-space__kicker{font:500 10px var(--font-mono);letter-spacing:.22em;color:var(--accent)}
.dmn-space__title{font-family:var(--font-display);font-weight:400;font-size:20px}
.dmn-space__text{font-size:14px;line-height:1.6;color:var(--muted-2)}

/* ============ Méthode ============ */
.dmn-methode{display:flex;flex-direction:column;gap:56px}
.dmn-methode>div:first-child{display:flex;flex-direction:column;gap:18px}
.dmn-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.dmn-step{
  display:flex;flex-direction:column;gap:16px;padding-top:22px;border-top:1px solid var(--line-2);
}
.dmn-step__n{font-family:var(--font-display);font-weight:300;font-size:52px;line-height:1;color:var(--line-2)}
.dmn-step__t{font-family:var(--font-display);font-weight:400;font-size:19px}
.dmn-step__d{font-size:14px;line-height:1.6;color:var(--muted-2)}

/* ============ Accès / Form ============ */
.dmn-acces{
  position:relative;overflow:hidden;padding:clamp(100px,12vw,180px) clamp(20px,6vw,96px);
  background:radial-gradient(ellipse at 70% 30%,#2e1349 0%,#140a20 45%,#07060a 80%);
}
.dmn-acces__grid{
  max-width:1280px;margin:0 auto;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));
  gap:clamp(40px,6vw,96px);align-items:start;
}
.dmn-acces__intro{display:flex;flex-direction:column;gap:22px}
.dmn-acces__text{margin:0;font-size:15px;line-height:1.65;color:var(--muted-1);max-width:440px}

.dmn-form{display:flex;flex-direction:column;gap:22px}
.dmn-field{display:flex;flex-direction:column;gap:8px}
.dmn-field__label{font:500 10px var(--font-mono);letter-spacing:.22em;color:var(--muted-2)}
.dmn-field__input{
  background:transparent;border:none;border-bottom:1px solid var(--line-4);color:var(--ink);
  font-family:var(--font-body);font-size:18px;padding:10px 0;outline:none;transition:border-color .3s;
}
.dmn-field__input::placeholder{color:#524d5e}
.dmn-field__input:focus{border-bottom-color:var(--accent)}
.dmn-field__input.has-error{border-bottom-color:var(--error-line)}

.dmn-chips{display:flex;flex-wrap:wrap;gap:8px}
.dmn-chip{
  padding:9px 14px;border-radius:20px;border:1px solid var(--line-4);background:transparent;
  color:var(--ink);cursor:pointer;font:500 10px var(--font-mono);letter-spacing:.18em;
  transition:all .3s;
}
.dmn-chip.is-selected{border-color:var(--accent);background:var(--panel-6)}

.dmn-submit{
  position:relative;overflow:hidden;margin-top:10px;align-self:flex-start;
  padding:20px 34px;border:1px solid var(--accent);background:var(--panel-6);color:var(--ink);
  cursor:pointer;font-family:var(--font-display);font-weight:400;font-size:13px;letter-spacing:.14em;
  transition:background .4s;
}
.dmn-submit:hover{background:var(--panel-6-hover)}
.dmn-form__error{font-size:13px;color:var(--error)}

.dmn-success{
  display:flex;flex-direction:column;gap:18px;padding:36px;
  border:1px solid var(--line-3);background:rgba(36,16,58,.4);
}
.dmn-success__plate{width:160px}
.dmn-success__title{font-family:var(--font-display);font-weight:400;font-size:24px}
.dmn-success__text{margin:0;font-size:15px;line-height:1.6;color:var(--muted-1)}

/* ============ Footer ============ */
.dmn-footer{
  padding:64px clamp(20px,6vw,96px) 40px;border-top:1px solid var(--line-1);
  display:flex;flex-direction:column;gap:48px;
}
.dmn-footer__mark{width:100%;max-width:1440px;height:auto;margin:0 auto;display:block}
.dmn-footer__meta{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;
  font:400 10.5px var(--font-mono);letter-spacing:.2em;color:var(--muted-3);
  max-width:1440px;width:100%;margin:0 auto;
}

/* ============ Motion accessibility ============ */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .dmn-hero__drift,.dmn-marquee__track,.dmn-hero__scroll-track span,.dmn-dot{
    animation:none !important;
  }
  [data-reveal]{transition:none}
}

/* ============ Small screens ============ */
@media (max-width:640px){
  .dmn-header__actions{gap:16px}
  .dmn-invite{display:none}
  .dmn-hero__content{grid-template-columns:1fr}
  .dmn-hero__side{align-items:flex-start;text-align:left}

  .dmn-programme-row{
    grid-template-columns:36px 1fr;
    row-gap:10px;
    align-items:start;
  }
  .dmn-programme-row__n{font-size:clamp(22px,7vw,32px)}
  .dmn-programme-row__d{grid-column:1 / -1}
}
