
/* ============================================================
   ATELIER DIGITAL TN — V6 / 21st.dev-inspired interactions
   Vanilla CSS + JS, sans dépendance externe.
   ============================================================ */
:root{
  --v6-green:#70b09c;--v6-orange:#e4774d;--v6-blue:#0c6681;
  --v6-ease:cubic-bezier(.22,.8,.2,1);
}

/* Header / nav polish */
.v6-scroll-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;pointer-events:none}
.v6-scroll-progress span{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--v6-green),#8ad9c4,var(--v6-orange));will-change:transform}
.desktop-nav a{position:relative}
.desktop-nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:-12px;height:2px;background:linear-gradient(90deg,var(--v6-green),var(--v6-orange));box-shadow:0 0 14px rgba(112,176,156,.45);transition:left .3s var(--v6-ease),right .3s var(--v6-ease)}
.desktop-nav a:hover::after,.desktop-nav a[aria-current=page]::after{left:8%;right:8%}

/* Generic hero: animated background paths + code chips */
.v6-hero-shell{position:relative;isolation:isolate;overflow:hidden}
.v6-hero-shell>.wrap,.v6-hero-shell>.hero-grid-bg{position:relative;z-index:3}
.v6-hero-decor{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.v6-orb{position:absolute;border-radius:50%;filter:blur(75px);opacity:.18;will-change:transform}
.v6-orb-a{width:420px;height:420px;right:-120px;top:8%;background:#0c6681;animation:v6OrbA 11s ease-in-out infinite}
.v6-orb-b{width:300px;height:300px;left:-80px;bottom:-30px;background:#70b09c;opacity:.10;animation:v6OrbB 13s ease-in-out infinite}
.v6-code-chip{position:absolute;padding:8px 11px;border:1px solid rgba(255,255,255,.10);background:rgba(8,18,26,.38);backdrop-filter:blur(10px);font:700 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;color:rgba(222,234,230,.55);border-radius:999px;animation:v6Float 7s ease-in-out infinite}
.v6-chip-a{left:4%;top:26%}.v6-chip-b{right:6%;top:18%;animation-delay:-2.3s}.v6-chip-c{right:15%;bottom:14%;animation-delay:-4.2s;color:rgba(112,176,156,.72)}

/* Cinematic home hero / parallax preview */
.v6-cinematic-hero .hero-showcase{transform-style:preserve-3d;will-change:transform}
.v6-cinematic-hero .browser{transition:transform .28s var(--v6-ease),box-shadow .35s var(--v6-ease);will-change:transform}
.v6-cinematic-hero .hero-showcase:hover .browser-main{box-shadow:0 48px 110px rgba(0,0,0,.48)}
.v6-hero-crosshair{position:absolute;right:4%;bottom:13%;width:66px;height:66px;border:1px solid rgba(255,255,255,.10);border-radius:50%;pointer-events:none;animation:v6Spin 14s linear infinite}
.v6-hero-crosshair::before,.v6-hero-crosshair::after{content:"";position:absolute;background:rgba(112,176,156,.36)}
.v6-hero-crosshair::before{width:1px;height:90px;left:50%;top:-13px}.v6-hero-crosshair::after{height:1px;width:90px;top:50%;left:-13px}

/* Spotlight cards — inspired by the cursor spotlight pattern */
.v6-spotlight{position:relative;isolation:isolate;overflow:hidden;--spot-x:50%;--spot-y:50%}
.v6-spotlight::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(420px circle at var(--spot-x) var(--spot-y),rgba(112,176,156,.16),rgba(12,102,129,.06) 28%,transparent 62%);opacity:0;transition:opacity .28s var(--v6-ease)}
.v6-spotlight:hover::after{opacity:1}
.v6-spotlight>*{position:relative;z-index:1}
.dark-section .v6-spotlight::after,.method-section .v6-spotlight::after{background:radial-gradient(440px circle at var(--spot-x) var(--spot-y),rgba(112,176,156,.20),rgba(228,119,77,.05) 32%,transparent 64%)}

/* Display-card depth without gimmicky infinite floating */
.v6-display-card{position:relative;transition:transform .5s var(--v6-ease),filter .4s var(--v6-ease);transform-style:preserve-3d}
.v6-display-card::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid rgba(16,28,36,.08);z-index:-1;transition:transform .5s var(--v6-ease),opacity .5s var(--v6-ease);opacity:.55}
.v6-display-card:hover{transform:translateY(-7px)}
.v6-display-card:hover::before{transform:translate(7px,7px);opacity:.85}
.v6-media-spotlight,.v6-display-card [data-media-parallax]{position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform}

/* Scroll media expansion — the key 21st-like interaction */
.v6-scroll-media{position:relative;background:var(--dark);color:#fff;height:190vh;overflow:clip}
.v6-scroll-media-track{height:100%;position:relative}
.v6-scroll-media-sticky{position:sticky;top:86px;height:calc(100vh - 86px);display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:35px 0 42px;background:
 radial-gradient(circle at 70% 40%,rgba(12,102,129,.16),transparent 27%),
 linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,54px 54px,54px 54px}
.v6-scroll-media-head{display:grid;grid-template-columns:1.1fr .7fr;gap:65px;align-items:end;margin-bottom:28px;transition:opacity .3s linear,transform .3s linear;opacity:calc(1 - (var(--media-p,0) * .75));transform:translateY(calc(var(--media-p,0) * -16px))}
.v6-scroll-media-head h2{font-size:clamp(38px,4.5vw,64px);letter-spacing:-.05em;line-height:1;margin:14px 0 0}.v6-scroll-media-head p{color:#87979f;line-height:1.7;margin:0;max-width:500px}
.v6-expand-device{--p:var(--media-p,0);position:relative;margin-inline:auto;width:calc(62vw + (32vw * var(--p)));max-width:1380px;min-width:min(88vw,820px);height:calc(48vh + (30vh * var(--p)));border-radius:calc(30px - (20px * var(--p)));overflow:hidden;border:1px solid rgba(255,255,255,.14);background:#0b1821;box-shadow:0 45px 110px rgba(0,0,0,.48);transform:perspective(1500px) rotateX(calc(8deg - (8deg * var(--p)))) translateY(calc(28px - (28px * var(--p))));transform-origin:center bottom;will-change:width,height,transform,border-radius}
.v6-device-bar{height:42px;display:flex;align-items:center;gap:7px;padding:0 14px;background:#0b161e;border-bottom:1px solid rgba(255,255,255,.08)}
.v6-device-bar>span{width:7px;height:7px;border-radius:50%;background:#52636c}.v6-device-bar small{margin-left:7px;color:#62757e;font:700 9px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.09em}.v6-device-bar b{margin-left:auto;color:#82baa9;font:800 9px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em}
.v6-device-stage{height:calc(100% - 42px);display:grid;grid-template-columns:1fr 115px;background:#fff;position:relative;overflow:hidden}.v6-device-stage>img{width:100%;height:100%;object-fit:contain;object-position:top center;background:#fff}
.v6-build-rail{background:#0a151d;border-left:1px solid rgba(255,255,255,.08);padding:18px 11px;display:flex;flex-direction:column;gap:10px}.v6-build-rail i{font-style:normal;color:#53666f;font:800 9px ui-monospace,monospace;padding:10px 8px;border:1px solid rgba(255,255,255,.06);transition:.3s}.v6-build-rail i em{display:block;font-style:normal;font-weight:600;font-size:8px;margin-top:5px;color:#71838b}.v6-build-rail i.is-active{color:#e9f3ef;border-color:rgba(112,176,156,.38);background:rgba(112,176,156,.08);transform:translateX(-3px)}

/* Builder lab on Services */
.v6-builder-lab{position:relative;padding:125px 0;overflow:hidden;background:#08131b}
.v6-builder-lab::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 35%,rgba(12,102,129,.18),transparent 28%),linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:auto,34px 34px,34px 34px;mask-image:linear-gradient(#000,rgba(0,0,0,.65))}
.v6-builder-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:center;position:relative;z-index:2}.v6-builder-copy h2{font-size:clamp(40px,4.8vw,65px);line-height:1.02;letter-spacing:-.05em;margin:16px 0 22px}.v6-builder-copy p{color:#7d8e96;line-height:1.75;max-width:480px}.v6-builder-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-top:34px}.v6-builder-tabs button{border:1px solid rgba(255,255,255,.10);background:transparent;color:#74868e;padding:9px 12px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:.25s}.v6-builder-tabs button:hover,.v6-builder-tabs button.is-active{background:#fff;color:#071018;border-color:#fff;transform:translateY(-2px)}
.v6-builder-window{border:1px solid rgba(255,255,255,.12);background:#0c1922;border-radius:18px;overflow:hidden;box-shadow:0 38px 90px rgba(0,0,0,.34);transform:perspective(1200px) rotateY(-3deg);transition:transform .5s var(--v6-ease)}.v6-builder-window:hover{transform:perspective(1200px) rotateY(0)}
.v6-builder-toolbar{height:43px;display:flex;align-items:center;gap:6px;padding:0 13px;border-bottom:1px solid rgba(255,255,255,.08)}.v6-builder-toolbar span{width:7px;height:7px;border-radius:50%;background:#53636b}.v6-builder-toolbar small{margin-left:8px;color:#60727b;font:700 9px ui-monospace,monospace}.v6-builder-toolbar b{margin-left:auto;font-size:9px;color:#6d807f}
.v6-builder-canvas{min-height:480px;display:grid;grid-template-columns:64px 1fr 220px;background:#eff2ef;position:relative;transition:.55s var(--v6-ease)}.v6-builder-canvas aside{background:#0c1c26;padding:18px 13px;display:flex;flex-direction:column;gap:14px}.v6-builder-canvas aside i{height:9px;border-radius:6px;background:#273943;transition:.45s}.v6-builder-canvas aside i:nth-child(1){background:#70b09c}.v6-builder-canvas main{padding:46px 42px}.v6-wire-title{height:36px;width:58%;background:#13232b;border-radius:8px}.v6-wire-sub{height:10px;width:72%;background:#cad2cd;border-radius:999px;margin-top:18px}.v6-wire-actions{display:flex;gap:10px;margin:28px 0 40px}.v6-wire-actions b{height:35px;width:110px;border-radius:7px;background:#0b1720}.v6-wire-actions b+ b{background:#d8dfda}.v6-wire-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.v6-wire-grid span{height:160px;border-radius:11px;background:white;border:1px solid #d8dfda;box-shadow:0 12px 30px rgba(18,33,42,.06);transition:.55s var(--v6-ease)}.v6-code-panel{background:#071018;padding:28px 20px;display:flex;flex-direction:column;gap:11px}.v6-code-panel code{color:#69808a;font:600 10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;transition:.35s}.v6-code-panel code:first-child{color:#8dc4b2}.v6-builder-progress{height:3px;background:#182630}.v6-builder-progress span{display:block;height:100%;width:25%;background:linear-gradient(90deg,#70b09c,#e4774d);transition:width .45s var(--v6-ease)}
.v6-builder-window[data-state="1"] .v6-wire-grid span:nth-child(2){transform:translateY(-12px);background:#edf6f2;border-color:#9fc9bb}.v6-builder-window[data-state="2"] .v6-wire-title{background:linear-gradient(90deg,#0b1720,#0c6681)}.v6-builder-window[data-state="2"] .v6-wire-grid span{border-radius:22px;transform:translateY(-5px)}.v6-builder-window[data-state="3"] .v6-wire-grid span{box-shadow:0 0 0 2px rgba(112,176,156,.18),0 18px 35px rgba(18,33,42,.08)}.v6-builder-window[data-state="3"] .v6-code-panel code{color:#86aa9e}

/* About orbit */
.about-brand-card{position:relative;overflow:hidden}.v6-orbit-system{position:absolute;inset:-25% -8% -10% 18%;pointer-events:none;opacity:.56;z-index:0}.v6-orbit-ring{position:absolute;left:50%;top:50%;border:1px solid rgba(16,28,36,.10);border-radius:50%;transform:translate(-50%,-50%)}.ring-a{width:290px;height:290px;animation:v6Spin 24s linear infinite}.ring-b{width:190px;height:190px;border-style:dashed;animation:v6SpinReverse 18s linear infinite}.v6-orbit-system i{position:absolute;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid rgba(16,28,36,.10);box-shadow:0 10px 28px rgba(7,16,24,.08);font:800 8px ui-monospace,monospace;color:#597068}.node-a{left:51%;top:11%;animation:v6Node 5.5s ease-in-out infinite}.node-b{right:4%;top:46%;animation:v6Node 6.2s ease-in-out infinite -2s}.node-c{left:30%;bottom:6%;animation:v6Node 5.8s ease-in-out infinite -1s}.node-d{left:4%;top:41%;animation:v6Node 6.4s ease-in-out infinite -3s}

/* Animated CTA paths inspired by background paths */
.v6-path-cta{position:relative;overflow:hidden;isolation:isolate}.v6-path-cta>.wrap{position:relative;z-index:2}.v6-background-paths{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.45}.v6-background-paths path{fill:none;stroke:rgba(12,102,129,.16);stroke-width:1.2;stroke-dasharray:9 14;animation:v6Dash 20s linear infinite}.v6-background-paths path:nth-child(2){stroke:rgba(112,176,156,.20);animation-duration:26s;animation-direction:reverse}.v6-background-paths path:nth-child(3){stroke:rgba(228,119,77,.10);animation-duration:30s}

/* Magnetic buttons */
.v6-magnetic{will-change:transform;transition:transform .24s var(--v6-ease),background-color .25s,color .25s}

/* Method / process scroll progress */
.v6-method-meter{height:2px;background:rgba(255,255,255,.08);margin-top:36px;overflow:hidden}.v6-method-meter span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#70b09c,#e4774d);transform:scaleX(var(--method-p,0));transform-origin:left;transition:transform .1s linear}
.method-step.is-current{background:linear-gradient(90deg,rgba(112,176,156,.06),transparent)}
.method-step.is-current h3{color:#a9d6c6}
.process-card.is-current{background:rgba(112,176,156,.05)}

/* Micro motion / media parallax */
[data-media-parallax]{transition:transform .35s var(--v6-ease);will-change:transform}.v6-media-spotlight::after{content:"";position:absolute;inset:0;background:radial-gradient(300px circle at var(--media-x,50%) var(--media-y,50%),rgba(255,255,255,.16),transparent 58%);opacity:0;transition:.25s;pointer-events:none}.v6-media-spotlight:hover::after{opacity:1}

/* Responsive */
@media(max-width:1000px){
 .v6-scroll-media{height:auto}.v6-scroll-media-sticky{position:relative;top:auto;height:auto;padding:90px 0}.v6-scroll-media-head{grid-template-columns:1fr;gap:18px}.v6-expand-device{width:min(92vw,860px)!important;height:auto;min-width:0;transform:none!important}.v6-device-stage{height:auto;grid-template-columns:1fr}.v6-device-stage>img{height:auto}.v6-build-rail{display:none}.v6-builder-grid{grid-template-columns:1fr}.v6-builder-window{transform:none}.v6-code-panel{display:none}.v6-builder-canvas{grid-template-columns:54px 1fr;min-height:390px}.v6-orbit-system{opacity:.35}
}
@media(max-width:760px){
 .v6-code-chip{display:none}.v6-hero-crosshair{display:none}.v6-builder-lab{padding:90px 0}.v6-builder-canvas main{padding:34px 24px}.v6-wire-grid{grid-template-columns:1fr}.v6-wire-grid span{height:110px}.v6-builder-canvas{min-height:560px}.v6-scroll-media-head{margin-bottom:22px}.v6-expand-device{border-radius:16px!important}.v6-display-card::before{display:none}.v6-background-paths{opacity:.28}
}
@media(prefers-reduced-motion:reduce){
 .v6-orb,.v6-code-chip,.v6-hero-crosshair,.v6-background-paths path,.v6-orbit-ring,.v6-orbit-system i{animation:none!important}.v6-expand-device{transform:none!important}.v6-magnetic,[data-media-parallax]{transform:none!important}
}

@keyframes v6OrbA{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-70px,45px,0) scale(1.12)}}
@keyframes v6OrbB{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(70px,-36px,0)}}
@keyframes v6Float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(1.2deg)}}
@keyframes v6Spin{to{transform:rotate(360deg)}}
@keyframes v6SpinReverse{to{transform:translate(-50%,-50%) rotate(-360deg)}}
@keyframes v6Node{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes v6Dash{to{stroke-dashoffset:-460}}
