/* The V Collective: finish and motion layer. Slow, eased, restrained. Loaded by the public page and the private dossier. */
:root{--vx:cubic-bezier(.16,1,.3,1)}
.vcx-pg{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#8a6a2c,#C6A15B 55%,#F1DFB8);z-index:2147483000;pointer-events:none;box-shadow:0 0 12px rgba(198,161,91,.5)}

/* ---------- entrance, public page hero (pure CSS, no script needed) ---------- */
@keyframes vxUp{from{opacity:0;transform:translate3d(0,26px,0)}to{opacity:1;transform:none}}
@keyframes vxMask{from{opacity:0;transform:translate3d(0,.35em,0);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(-10% -2% -10% -2%)}}
@keyframes vxTrack{from{opacity:0;letter-spacing:1.05em}to{opacity:1;letter-spacing:.62em}}
@keyframes vxRule{from{width:0}to{width:96px}}
@keyframes vxFade{from{opacity:0}to{opacity:1}}
.vc .hero{position:relative;isolation:isolate;overflow:hidden}
.vc .hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(560px circle at var(--mx,72%) var(--my,28%),rgba(198,161,91,.17),transparent 62%)}
.vc .hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.vc .hero .eb{animation:vxUp 1.2s var(--vx) .15s both}
.vc .hero h1{animation:vxMask 1.5s var(--vx) .35s both}
.vc .hero .cl{animation:vxTrack 2s var(--vx) .7s both}
.vc .hero .rule{animation:vxRule 1.4s var(--vx) 1s both}
.vc .hero p{animation:vxUp 1.1s var(--vx) 1.15s both}
.vc .hero .btn{animation:vxUp 1.1s var(--vx) 1.35s both}.vc .hero .btn+.btn{animation-delay:1.5s}

/* ---------- scroll reveal (script adds .vx then .vx-in; without script everything simply shows) ---------- */
.js-vx .vx{opacity:0;transform:translate3d(0,26px,0);filter:blur(5px);transition:opacity 1.1s var(--vx),transform 1.1s var(--vx),filter 1.1s var(--vx);transition-delay:calc(var(--i,0) * 85ms)}
.js-vx .vx.vx-in{opacity:1;transform:none;filter:none}
.js-vx .vx.ph{opacity:1;filter:none;transform:scale(1.07);clip-path:inset(0 0 100% 0);transition:clip-path 1.5s var(--vx),transform 1.9s var(--vx);transition-delay:calc(var(--i,0) * 110ms)}
.js-vx .vx.ph.vx-in{transform:none;clip-path:inset(0)}
.vc .sec .eb::before,.priv .sec .eb::before{content:"";display:inline-block;width:0;height:1px;background:currentColor;vertical-align:middle;margin-right:0;transition:width 1.1s var(--vx) .2s,margin-right 1.1s var(--vx) .2s}
.vc .sec .eb.vx-in::before,.priv .sec .eb.vx-in::before,.priv .sec .rv.in .eb::before{width:34px;margin-right:14px}
.vc .grid .cell,.vc .steps>div{will-change:transform,opacity}

/* ---------- finish: segment cells, buttons, fields ---------- */
.vc .cell{position:relative;transition:background .6s ease}
.vc .cell::before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:var(--g);transform:scaleX(0);transform-origin:0 50%;transition:transform .9s var(--vx)}
.vc .cell:hover{background:#15263d}.vc .cell:hover::before{transform:scaleX(1)}
.vc .cell .no{transition:letter-spacing .7s var(--vx)}.vc .cell:hover .no{letter-spacing:.34em}
.vc .btn,.priv .btn{position:relative;overflow:hidden;transition:transform .6s var(--vx),box-shadow .6s ease,background .4s ease,color .4s ease}
.vc .btn::after,.priv .btn::after{content:"";position:absolute;top:0;bottom:0;left:-70%;width:42%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.34),transparent);transform:skewX(-20deg);transition:left 1s var(--vx);pointer-events:none}
.vc .btn:hover::after,.priv .btn:hover::after{left:140%}
.vc .btn:hover,.priv .btn:hover{transform:translateY(-2px)}
.vc .btn.p:hover,.priv .btn.p:hover{box-shadow:0 18px 44px -16px rgba(198,161,91,.65)}
.vc .btn.s:hover,.priv .btn.o:hover{background:rgba(198,161,91,.09)}
.vc a:focus-visible,.vc button:focus-visible,.priv a:focus-visible,.priv button:focus-visible{outline:2px solid #C6A15B;outline-offset:4px}
.vc .form input,.vc .form select,.vc .form textarea{transition:border-color .4s ease,box-shadow .5s ease,background .4s ease}
.vc .form input:focus,.vc .form select:focus,.vc .form textarea:focus{outline:none;border-color:var(--g);box-shadow:0 0 0 1px var(--g),0 14px 34px -18px rgba(198,161,91,.6)}
.vc details{transition:background .5s ease}.vc details[open]{background:rgba(198,161,91,.04)}
.vc .facts .f div:first-child{transition:color .5s ease}.vc .facts .f:hover div:first-child{color:#F1DFB8}
.vc #ccOut{transition:opacity .35s ease}
.vc .cc input{transition:border-color .4s ease,box-shadow .5s ease}.vc .cc input:focus{box-shadow:0 0 0 1px var(--g),0 14px 34px -18px rgba(198,161,91,.6)}

/* ---------- private dossier ---------- */
.priv .hero:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.priv .facts div{transition:background .5s ease}.priv .facts div:hover{background:rgba(198,161,91,.05)}
.priv .pts li{transition:border-color .6s ease,padding-left .7s var(--vx)}.priv .pts li:hover{border-color:#C6A15B;padding-left:12px}
.priv .ph{transition:filter .8s ease}
.priv .cap .tabs button{transition:color .4s ease,border-color .5s var(--vx)}
.priv .cap .tot b{transition:opacity .35s ease}
.priv .set .m svg{opacity:0;transition:opacity 1.8s ease .25s}.priv .set .g.in .m svg{opacity:1}
.priv .set .g.in .dl li{animation:vxUp 1s var(--vx) both;animation-delay:calc(.35s + var(--i,0) * 90ms)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js-vx .vx,.js-vx .vx.ph{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}
  .vcx-pg{display:none}
}
@media (hover:none){.vc .cell:hover{background:var(--nd)}.vc .cell:hover::before{transform:scaleX(0)}.priv .pts li:hover{padding-left:0}}
