/* Généré par bin/extraire-maquette-v32.py depuis docs/maquette-edreamsfactory-v32.html (13/10/2026).
   Ne pas modifier à la main : CSS de la maquette, isolé sous .v32. */
.v32 a{text-decoration:underline}
.v32 h1, .v32 h2{max-width:none}
.v32 .card{padding:0}
.v32 .card p{margin:0;font-size:inherit;color:inherit}
.v32 .prose{max-width:none}
.v32 .prose p{color:inherit}
.v32 .prose h2{margin-top:0}
.v32 .prose h2 + p{margin-top:0}
.v32 .prose ul{color:inherit;padding-left:0}
.v32 .prose li{margin-bottom:0}
.v32 .btn{line-height:normal;text-align:left}
@media (max-width:900px){.v32 .btn{display:inline-flex}}
.v32{--ink:#000000; --mint:#6EF0BE; --paper:#FFFFFF; --mist:#F5F5F5; --mute:#4A4A4A; --line:#E0E0E0; --todo:#FFF3B0;
  --sans:'Inter',-apple-system,'Segoe UI',Arial,sans-serif;
  color-scheme:light;}
.v32 *{box-sizing:border-box}
.v32{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;margin:0}
.v32 .wrap{max-width:1200px;margin:0 auto;padding-inline:24px}
.v32 a{color:inherit}
.v32 h1, .v32 h2, .v32 h3{margin:0;text-wrap:balance;letter-spacing:-.02em}
.v32 h1{font-size:clamp(34px,5.2vw,60px);line-height:1.05;font-weight:700}
.v32 h2{font-size:clamp(26px,3.4vw,40px);line-height:1.1;font-weight:700}
.v32 h3{font-size:21px;line-height:1.3;font-weight:600}
.v32 p{margin:0;max-width:68ch}
.v32 .br{color:#2BB97E;font-weight:500}
.v32 .eyebrow{font-size:14px;color:var(--mute);font-weight:500}
.v32 .todo{background:var(--todo);padding:0 4px;font-size:.85em;color:#5a4a00}
.v32 .note{font-size:13px;color:var(--mute)}
.v32 .mockbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--ink);color:#fff}
.v32 .mockbar .wrap{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding-block:10px}
.v32 .tabs{display:flex;gap:4px}
.v32 .tabs button{font:600 14px var(--sans);background:transparent;color:#fff;border:1px solid #444;padding:8px 14px;cursor:pointer}
.v32 .tabs button[aria-pressed="true"]{background:var(--mint);color:#000;border-color:var(--mint)}
.v32 .tabs button:focus-visible, .v32 .btn:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.v32 .mockbar small{color:#bbb;font-size:12px}
.v32 .site{border-bottom:1px solid var(--line);background:#fff}
.v32 .site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:16px;flex-wrap:wrap}
.v32 .logo{font-weight:700;font-size:20px;letter-spacing:.02em}
.v32 .logo b{font-weight:400;color:var(--ink)}
.v32 .logo i{font-style:normal;color:var(--mint);font-weight:700}
.v32 .nav{display:flex;gap:22px;font-size:15px;color:var(--mute);flex-wrap:wrap;align-items:center}
.v32 .btn{display:inline-flex;align-items:center;gap:8px;font:600 16px var(--sans);padding:13px 20px;border:1.5px solid var(--ink);text-decoration:none;cursor:pointer;background:#fff;color:var(--ink)}
.v32 .btn.primary{background:var(--mint);border-color:var(--mint);color:#000}
.v32 .btn.small{font-size:14px;padding:9px 14px}
.v32 .btn .arr{transition:transform .2s}
.v32 .btn:hover .arr{transform:translateX(4px)}
.v32 section{padding-block:96px}
.v32 .mist{background:var(--mist)}
.v32 .dark{background:var(--ink);color:#fff}
.v32 .dark .mute, .v32 .dark .note{color:#BDBDBD}
.v32 .mute{color:var(--mute)}
.v32 .stack{display:flex;flex-direction:column;gap:20px}
.v32 .grid{display:grid;gap:24px}
.v32 .two{grid-template-columns:7fr 5fr;align-items:center;gap:56px}
@media (max-width:900px){.v32 .two{grid-template-columns:1fr}}
.v32 .three{grid-template-columns:repeat(3,minmax(0,1fr))}
.v32 .four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.v32 .three, .v32 .four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.v32 .three, .v32 .four{grid-template-columns:1fr}}
.v32 .grid>*{min-width:0}
.v32 .hero{padding-block:72px 88px}
.v32 .proofs{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;padding:0;margin:0;font-size:15px;color:var(--mute)}
.v32 .proofs li{display:flex;gap:8px;align-items:center}
.v32 .proofs li::before{content:"";width:8px;height:8px;background:var(--mint)}
.v32 .ctas{display:flex;gap:12px;flex-wrap:wrap}
.v32 .screen{border:1px solid var(--line);background:#fff;max-width:100%}
.v32 .screen .chrome{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--mist);align-items:center}
.v32 .screen .chrome span{width:9px;height:9px;border-radius:50%;background:#cfcfcf}
.v32 .screen .chrome em{font-style:normal;font-size:11px;color:var(--mute);margin-left:8px}
.v32 .ui{display:grid;grid-template-columns:110px 1fr;min-height:300px}
.v32 .ui .side{background:#111;padding:14px 10px;display:flex;flex-direction:column;gap:9px}
.v32 .ui .side i{display:block;height:8px;background:#333;width:80%}
.v32 .ui .side i.on{background:var(--mint);width:90%}
.v32 .ui .main{padding:14px;display:flex;flex-direction:column;gap:10px}
.v32 .ui .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.v32 .ui .kpis div{border:1px solid var(--line);padding:8px;font-size:11px;color:var(--mute)}
.v32 .ui .kpis b{display:block;font-size:18px;color:#000}
.v32 .plan{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;font-size:10px}
.v32 .plan div{height:22px;background:var(--mist)}
.v32 .plan .a{background:var(--ink)}
.v32 .plan .b{background:var(--mint)}
.v32 .plan .c{background:#cfcfcf}
.v32 .cap{font-size:12px;color:var(--mute);padding:8px 12px;border-top:1px solid var(--line)}
.v32 .logos{display:flex;flex-wrap:wrap;gap:16px 44px;align-items:center;justify-content:space-between;color:#8a8a8a;font-weight:600;font-size:17px;padding-block:28px;border-block:1px solid var(--line)}
.v32 .logos small{flex-basis:100%;font-weight:400;font-size:13px;color:var(--mute)}
.v32 .sym{border-top:2px solid var(--ink);padding-top:16px}
.v32 .sym p{font-size:17px}
.v32 .flow{display:flex;flex-wrap:wrap;gap:0;margin-top:40px;border:1px solid var(--line);background:#fff}
.v32 .step{flex:1 1 150px;min-width:0;padding:20px 18px;border-right:1px solid var(--line);position:relative;display:flex;flex-direction:column;gap:8px}
.v32 .step:last-child{border-right:0}
.v32 .step .t{font-weight:600;font-size:17px}
.v32 .step .d{font-size:14px;color:var(--mute);line-height:1.45}
.v32 .step .k{font-size:12px;font-weight:600;margin-top:auto;padding-top:8px}
.v32 .step .k::before{content:"→ "}
.v32 .step.ai{background:var(--ink);color:#fff}
.v32 .step.ai .d{color:#bdbdbd}
.v32 .step.ai .k{color:var(--mint)}
@media (max-width:760px){.v32 .step{flex-basis:100%;border-right:0;border-bottom:1px solid var(--line)}}
.v32 .card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);text-decoration:none;transition:border-color .2s}
.v32 .card:hover{border-color:var(--ink)}
.v32 .card .vis{aspect-ratio:16/10;max-width:100%;background:var(--mist);display:grid;place-items:center;font-weight:700;font-size:22px;color:#000;letter-spacing:-.01em}
.v32 .card .body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.v32 .tag{font-size:13px;color:var(--mute)}
.v32 .card h3{font-size:19px}
.v32 .card p{font-size:15px;color:var(--mute);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.v32 .card .more{margin-top:auto;font-weight:600;font-size:15px}
.v32 .quote{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start}
.v32 .quote .mark{font-size:120px;line-height:.8;color:var(--mint);font-weight:700}
.v32 .quote blockquote{margin:0;font-size:clamp(22px,2.6vw,30px);line-height:1.35;font-weight:500;max-width:34ch}
.v32 .quote cite{display:block;margin-top:20px;font-style:normal;font-size:15px}
.v32 .quote cite b{display:block}
.v32 .steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:40px}
@media (max-width:900px){.v32 .steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.v32 .steps{grid-template-columns:1fr}}
.v32 .steps li{list-style:none;counter-increment:s;border-top:1px solid var(--ink);padding-top:16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.v32 .steps li::before{content:counter(s,decimal-leading-zero);font-size:40px;font-weight:700;line-height:1}
.v32 .steps .dur{font-size:13px;color:var(--mute)}
.v32 .team{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:32px}
@media (max-width:900px){.v32 .team{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v32 .team figure{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.v32 .team img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1);transition:filter .3s;display:block}
.v32 .team figure:hover img{filter:none}
.v32 .team figcaption{font-size:14px;line-height:1.35}
.v32 .team figcaption span{display:block;color:var(--mute);font-size:13px}
.v32 .why h3{margin-bottom:8px}
.v32 .why .fact{font-size:14px;color:var(--mute);border-left:2px solid var(--mint);padding-left:10px;margin-top:10px}
.v32 details{border-bottom:1px solid var(--line);padding-block:18px}
.v32 summary{cursor:pointer;font-weight:600;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:16px}
.v32 summary::after{content:"+";font-weight:400}
.v32 details[open] summary::after{content:"–"}
.v32 details p{margin-top:12px;color:var(--mute)}
.v32 .close{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
@media (max-width:900px){.v32 .close{grid-template-columns:1fr}}
.v32 .who{display:flex;gap:14px;align-items:center;margin-top:24px}
.v32 .who img{width:64px;height:64px;object-fit:cover}
.v32 .mini{display:flex;flex-direction:column;gap:12px}
.v32 .mini label{font-size:14px;font-weight:600}
.v32 .mini textarea, .v32 .mini input{font:16px var(--sans);padding:12px;border:1px solid #555;background:#111;color:#fff;width:100%}
.v32 .mini .alt{font-size:14px;color:#bdbdbd}
.v32 .facts3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:2px solid var(--mint);padding-top:20px;margin-top:40px}
@media (max-width:640px){.v32 .facts3{grid-template-columns:1fr}}
.v32 .facts3 b{display:block;font-size:clamp(30px,4vw,48px);line-height:1;font-weight:700}
.v32 .facts3 span{font-size:15px;color:var(--mute)}
.v32 .casegrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start}
@media (max-width:900px){.v32 .casegrid{grid-template-columns:1fr}}
.v32 .aside{position:sticky;top:80px;background:var(--mist);padding:24px;display:flex;flex-direction:column;gap:14px;font-size:15px}
.v32 .aside dt{font-size:13px;color:var(--mute)}
.v32 .aside dd{margin:0;font-weight:500}
.v32 .prose{display:flex;flex-direction:column;gap:40px}
.v32 .prose h2{font-size:28px;margin-bottom:12px}
.v32 .timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0}
.v32 .timeline li{display:grid;grid-template-columns:90px 1fr;gap:16px;padding-block:14px;border-top:1px solid var(--line)}
.v32 .timeline b{font-size:14px}
.v32 .modules{display:flex;flex-wrap:wrap;gap:8px}
.v32 .modules span{border:1px solid var(--line);padding:6px 10px;font-size:14px}
.v32 .result{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){.v32 .result{grid-template-columns:1fr}}
.v32 .result div{background:var(--ink);color:#fff;padding:24px}
.v32 .result b{display:block;font-size:24px;line-height:1.2;margin-bottom:6px}
.v32 .result span{color:#bdbdbd;font-size:14px}
.v32 .gallery{display:grid;grid-template-columns:2fr 1fr;gap:16px}
@media (max-width:640px){.v32 .gallery{grid-template-columns:1fr}}
.v32 .ph{background:var(--mist);border:1px dashed #bdbdbd;display:grid;place-items:center;text-align:center;font-size:13px;color:var(--mute);aspect-ratio:16/10;max-width:100%;padding:16px}
.v32 .legend{background:var(--mist);border-top:1px solid var(--line)}
.v32 .legend ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:15px}
.v32 .clientmark{font-weight:800;font-size:20px;letter-spacing:.06em;display:flex;gap:12px;align-items:baseline}
.v32 .clientmark .note{letter-spacing:0;font-weight:400}
.v32 .heroviz{margin:0;display:flex;flex-direction:column;gap:10px;align-items:center}
.v32 .tablet{background:#111;padding:14px;border-radius:18px;width:100%;max-width:440px}
.v32 .tscreen{background:#fff;border-radius:4px;overflow:hidden}
.v32 .tbar{background:#000;color:#fff;padding:12px 16px;display:flex;flex-direction:column;gap:2px}
.v32 .tbar span{font-size:12px;color:#bdbdbd}
.v32 .tbody{padding:14px 16px;display:flex;flex-direction:column;gap:10px;font-size:13px}
.v32 .trow{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px}
.v32 .trow span{color:var(--mute)}
.v32 .tchk{display:flex;gap:10px;align-items:center}
.v32 .tchk i{width:16px;height:16px;border:1.5px solid #000;flex:none;position:relative}
.v32 .tchk i.ok{background:#000}
.v32 .tchk i.ok::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--mint);border-width:0 2px 2px 0;transform:rotate(45deg)}
.v32 .tsign{border:1px dashed #bdbdbd;padding:8px;display:flex;flex-direction:column;gap:2px}
.v32 .tsign span{font-size:11px;color:var(--mute)}
.v32 .tsign svg{width:160px;height:36px}
.v32 .tbtn{background:var(--mint);color:#000;font-weight:600;text-align:center;padding:10px}
.v32 .ba{display:grid;grid-template-columns:minmax(0,4fr) auto minmax(0,7fr);gap:28px;align-items:stretch}
@media (max-width:900px){.v32 .ba{grid-template-columns:1fr}
.v32 .ba .arrow{transform:rotate(90deg);justify-self:center}}
.v32 .ba .arrow{font-size:40px;align-self:center;font-weight:300}
.v32 .balabel{font-size:13px;font-weight:600;margin-bottom:14px}
.v32 .before, .v32 .after{background:#fff;border:1px solid var(--line);padding:24px;min-width:0}
.v32 .pc{border:1.5px solid #8a8a8a;padding:16px;display:flex;flex-direction:column;gap:2px;color:#4a4a4a;background:repeating-linear-gradient(45deg,#fafafa 0 6px,#f0f0f0 6px 12px)}
.v32 .pc span{font-size:14px}
.v32 .pains{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--mute)}
.v32 .pains li{display:flex;gap:10px}
.v32 .pains li::before{content:"×";font-weight:700;color:#000}
.v32 .hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"s1 s1 s2" "c c s3" "s4 s5 s3";gap:10px}
@media (max-width:560px){.v32 .hub{grid-template-columns:1fr;grid-template-areas:"c" "s1" "s2" "s3" "s4" "s5"}}
.v32 .hub>div{padding:14px;border:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0}
.v32 .hub span{font-size:13px;color:var(--mute);line-height:1.4}
.v32 .hubc{grid-area:c;background:#000;color:#fff;border-color:#000!important;justify-content:center}
.v32 .hubc b{font-size:24px}
.v32 .hubc span{color:#bdbdbd!important}
.v32 .s1{grid-area:s1}
.v32 .s2{grid-area:s2}
.v32 .s3{grid-area:s3}
.v32 .s4{grid-area:s4}
.v32 .s5{grid-area:s5}
.v32 .sat{border-left:3px solid var(--mint)!important}
.v32 .shot{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.v32 .pl{padding:14px;display:flex;flex-direction:column;gap:6px;font-size:11px;overflow-x:auto}
.v32 .plh, .v32 .plr{display:grid;grid-template-columns:90px repeat(5,minmax(48px,1fr));gap:4px;align-items:center;min-width:360px}
.v32 .plh span{color:var(--mute);font-weight:600}
.v32 .plr{min-height:30px;background:linear-gradient(90deg,transparent 94px,#fafafa 94px)}
.v32 .plr span{font-weight:600;grid-column:1}
.v32 .plr i{font-style:normal;padding:6px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;grid-row:1}
.v32 .plr i.m, .v32 .plleg i.m{background:#000;color:#fff}
.v32 .plr i.e, .v32 .plleg i.e{background:var(--mint);color:#000}
.v32 .plr i.s, .v32 .plleg i.s{background:#cfcfcf;color:#000}
.v32 .plleg{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;color:var(--mute)}
.v32 .plleg span{display:flex;gap:6px;align-items:center}
.v32 .plleg i{width:10px;height:10px;display:inline-block}
.v32 .dash{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px}
.v32 .dash>div{border:1px solid var(--line);padding:10px;font-size:11px;color:var(--mute)}
.v32 .dash b{display:block;font-size:20px;color:#000}
.v32 .spark{grid-column:1/-1;width:100%;height:60px}
.v32 .quoteui{padding:12px 14px;display:flex;flex-direction:column;font-size:12px}
.v32 .quoteui div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}
.v32 .quoteui div:last-child{border-bottom:0;font-weight:600}
.v32 .tl2{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.v32 .tl2 li{display:grid;grid-template-columns:56px 1fr;gap:16px;padding-block:14px;border-top:1px solid var(--line)}
.v32 .tl2 .n{font-size:28px;font-weight:700;line-height:1}
.v32 .tl2 p{color:var(--mute);margin-top:2px;font-size:16px}
.v32 .tl2 li>div{display:block}
.v32 .tl2 b{margin-right:6px}
.v32 .chain{counter-reset:ch;list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line)}
@media (max-width:560px){.v32 .chain{grid-template-columns:1fr}}
.v32 .chain li{padding:16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px;min-width:0;position:relative}
.v32 .chain li:nth-child(3n){border-right:0}
.v32 .chain li:nth-child(n+4){border-bottom:0}
.v32 .chain li{counter-increment:ch}
.v32 .chain li::before{content:counter(ch,decimal-leading-zero);font-size:12px;color:var(--mute);font-weight:600}
.v32 .chain span{font-size:14px;color:var(--mute);line-height:1.45}
.v32 .chain li.last{background:#000;color:#fff}
.v32 .chain li.last span, .v32 .chain li.last::before{color:#bdbdbd}
@media (max-width:560px){.v32 .chain li{border-right:0!important;border-bottom:1px solid var(--line)!important}}
.v32 .result{grid-template-columns:1fr 1fr}
.v32 .testi{margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;align-items:center;border:1px solid var(--line);padding:24px}
@media (max-width:700px){.v32 .testi{grid-template-columns:1fr}}
.v32 .vid{aspect-ratio:4/5;max-width:100%;background:#111;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:18px;font-size:14px;position:relative}
.v32 .vid small{color:#bdbdbd}
.v32 .vid .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;background:var(--mint);color:#000;display:grid;place-items:center;font-size:22px}
.v32 .testi.solo{display:flex;flex-direction:column;gap:14px;background:var(--mist);border:0;padding:32px}
.v32 .testi .mark{font-size:72px;line-height:.6;color:var(--mint);font-weight:700}
.v32 .testi blockquote{margin:0;font-size:22px;line-height:1.35;font-weight:500}
.v32 .testi cite{font-style:normal;font-size:14px;color:var(--mute)}
.v32 .next{background:#000;padding:32px;display:flex;flex-direction:column;gap:14px}
.v32 .ext{text-decoration:underline}
.v32 .aside a{text-underline-offset:3px}
.v32 .result div{background:#fff;color:#000;border:1px solid var(--line);border-top:3px solid var(--mint);padding:24px}
.v32 .result span{color:var(--mute)}
.v32 .chain li.last{background:var(--mist);color:#000;box-shadow:inset 3px 0 0 var(--mint)}
.v32 .chain li.last span{color:var(--mute)}
.v32 .chain li.last::before{color:var(--mute)}
.v32 .next{background:var(--mist);border-top:3px solid #000}
.v32 .next h2{color:#000!important}
.v32 .next p{color:var(--mute)!important}
.v32 .next .btn{color:#000!important;border-color:#000!important}
.v32 .rel .vis{position:relative;aspect-ratio:16/10;background:var(--mist);display:flex;align-items:center;justify-content:center;padding:58px 22px 18px;overflow:hidden}
.v32 .rel .lg{position:absolute;top:14px;left:14px;background:#fff;border:1px solid var(--line);padding:5px 10px;font-weight:800;font-size:13px;letter-spacing:.06em;color:#000}
.v32 .mui{background:#fff;border:1px solid var(--line);width:100%;max-width:300px;font-size:11px;display:flex;flex-direction:column}
.v32 .mui .h{padding:7px 10px;border-bottom:1px solid var(--line);font-weight:600;display:flex;justify-content:space-between}
.v32 .mui .r{padding:6px 10px;display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #f0f0f0;align-items:center}
.v32 .mui .r:last-child{border-bottom:0}
.v32 .mui .bar{height:6px;background:#000;display:block}
.v32 .mui .tag2{background:var(--mint);padding:2px 6px;font-weight:600}
.v32 .mui .tgt{background:#000;color:#fff;padding:7px 10px;display:flex;justify-content:space-between;font-weight:600}
.v32 .flowmini{display:flex;align-items:center;gap:8px;width:100%;max-width:320px}
.v32 .flowmini .mui{flex:1;min-width:0}
.v32 .flowmini .ar{font-size:18px}
.v32 .casehead{background:var(--mist);padding-block:0;border-bottom:1px solid var(--line)}
.v32 .casehead>.wrap{padding-block:28px 56px}
.v32 .crumb{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--mute);margin-bottom:36px;flex-wrap:wrap}
.v32 .crumb a{text-decoration:none;font-weight:500;color:#000}
.v32 .crumb span{font-weight:600;color:#000}
.v32 .logotile{background:#fff;border:1px solid var(--line);display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;padding:22px 28px;align-self:flex-start}
.v32 .logotile .wm{font-weight:800;font-size:30px;letter-spacing:.06em;line-height:1}
.v32 .chips{display:flex;flex-wrap:wrap;gap:8px}
.v32 .chips span{background:#fff;border:1px solid var(--line);padding:5px 10px;font-size:13px;font-weight:500}
.v32 .kpis4{background:#fff;border-top:1px solid var(--line)}
.v32 .kpis4 .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.v32 .kpis4 .wrap>div{padding:28px 24px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:6px;min-width:0}
.v32 .kpis4 .wrap>div:first-child{border-left:0;padding-left:0}
.v32 .kpis4 b{font-size:clamp(32px,4vw,52px);line-height:1;font-weight:700;letter-spacing:-.02em}
.v32 .kpis4 b::after{content:"";display:block;width:28px;height:3px;background:var(--mint);margin-top:12px}
.v32 .kpis4 span{font-size:15px;color:var(--mute)}
@media (max-width:900px){.v32 .kpis4 .wrap{grid-template-columns:1fr 1fr}
.v32 .kpis4 .wrap>div:nth-child(3){border-left:0;padding-left:0}
.v32 .kpis4 .wrap>div:nth-child(n+3){border-top:1px solid var(--line)}}
.v32 .chips{align-items:center}
.v32 .chips .sector{display:inline-flex;align-items:center;gap:8px;background:var(--mint);color:#000;font-weight:700;font-size:15px;padding:8px 14px 8px 10px;text-decoration:none;border:0}
.v32 .chips .sector svg{width:18px;height:18px}
.v32 .logotile{padding:28px 36px}
.v32 .logotile .wm{font-size:40px}
.v32 .chips .did{font-weight:700;font-size:15px;padding:7px 14px;border:1.5px solid #000;background:#fff}
.v32 .built{font-size:20px;line-height:1.4;font-weight:600;max-width:44ch;background:#fff;border-left:5px solid var(--deep);padding:16px 20px;margin:0}
.v32 .built span{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--deep);margin-bottom:6px}
.v32{--pale:#D4F7E5;--deep:#2BB97E}
.v32 .casehead{background:var(--pale);border-bottom:0}
.v32 .casehead .logotile{border-color:#fff}
.v32 .chips .sector{background:#000;color:#fff}
.v32 .chips .sector svg path{stroke:var(--mint)}
.v32 .built{border-left-color:var(--deep)}
.v32 .after{background:var(--pale);border-color:var(--pale)}
.v32 .after .hub>div:not(.hubc){background:#fff;border-color:#fff}
.v32 .sat{border-left:3px solid var(--deep)!important}
.v32 .result div{border-top-color:var(--deep)}
.v32 .kpis4 b::after{background:var(--deep)}
.v32 .testi.solo{background:var(--pale)}
.v32 .rel .vis{background:var(--pale)}
.v32{font-size:16px}
.v32 h1{font-size:clamp(30px,3.4vw,46px);line-height:1.08}
.v32 h2{font-size:clamp(22px,2.3vw,30px)}
.v32 h3{font-size:18px}
.v32 section{padding-block:72px}
.v32 .hero{padding-block:56px 64px}
.v32 .prose{gap:32px}
.v32 .prose h2{font-size:22px;margin-bottom:8px}
.v32 .prose p{font-size:16px}
.v32 .tl2 li{grid-template-columns:44px 1fr;padding-block:12px}
.v32 .tl2 .n{font-size:20px}
.v32 .tl2 p{font-size:15px}
.v32 .tl2 b{font-size:16px}
.v32 .casehead>.wrap{padding-block:20px 44px}
.v32 .crumb{font-size:13px;margin-bottom:28px}
.v32 .logotile{padding:18px 24px}
.v32 .logotile .wm{font-size:26px}
.v32 .logotile .note{font-size:12px}
.v32 .chips .sector, .v32 .chips .did{font-size:13px;padding:6px 12px}
.v32 .chips .sector svg{width:15px;height:15px}
.v32 .built{font-size:17px}
.v32 .tablet{max-width:380px;padding:12px}
.v32 .tbody{font-size:12px}
.v32 .kpis4 .wrap>div{padding:20px 20px}
.v32 .kpis4 b{font-size:clamp(24px,2.4vw,34px);white-space:nowrap}
.v32 .kpis4 span{font-size:14px}
.v32 .before, .v32 .after{padding:20px}
.v32 .pc b{font-size:16px}
.v32 .pc span{font-size:13px}
.v32 .pains{font-size:14px;gap:8px}
.v32 .hub>div{padding:12px}
.v32 .hub b{font-size:15px}
.v32 .hub span{font-size:12px}
.v32 .hubc b{font-size:20px!important}
.v32 .ba{gap:20px}
.v32 .ba .arrow{font-size:28px}
.v32 .result b{font-size:18px}
.v32 .result div{padding:18px}
.v32 .result span{font-size:13px}
.v32 .testi.solo{padding:24px}
.v32 .testi blockquote{font-size:19px}
.v32 .testi .mark{font-size:56px}
.v32 .next{padding:24px}
.v32 .next h2{font-size:22px}
.v32 .aside{font-size:14px;padding:20px;gap:10px;top:72px}
.v32 .aside dt{font-size:12px}
.v32 .casegrid{grid-template-columns:minmax(0,1fr) 280px;gap:48px}
.v32 .card h3{font-size:17px}
.v32 .card .body{padding:16px}
.v32 .facts3 b{font-size:clamp(26px,2.8vw,38px)}
.v32 .steps li::before{font-size:30px}
.v32 .quote blockquote{font-size:clamp(20px,2.2vw,26px)}
.v32 .quote .mark{font-size:90px}
.v32 .btn{font-size:15px;padding:11px 18px}
.v32 .fin{background:var(--pale)}
.v32 .fin-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media (max-width:900px){.v32 .fin-grid{grid-template-columns:1fr;gap:32px}}
.v32 .who2{display:flex;gap:16px;align-items:center;background:#fff;padding:14px;max-width:460px}
.v32 .who2 img{width:88px;height:88px;object-fit:cover;flex:none}
.v32 .who2 div{display:flex;flex-direction:column;gap:2px;font-size:15px;min-width:0}
.v32 .who2 span{color:var(--mute)}
.v32 .who2 .tel{font-size:13px;margin-top:4px;color:#000;font-weight:500}
.v32 .mini2{background:#fff;padding:28px;display:flex;flex-direction:column;gap:10px;border:1px solid #fff}
.v32 .mini2 label{font-size:14px;font-weight:600}
.v32 .mini2 textarea, .v32 .mini2 input{font:16px var(--sans);padding:12px;border:1px solid #cfcfcf;background:#fff;color:#000;width:100%}
.v32 .mini2 textarea:focus, .v32 .mini2 input:focus{outline:2px solid var(--deep);outline-offset:0;border-color:var(--deep)}
.v32 .btn.dark{background:#000;color:#fff;border-color:#000;justify-content:center;margin-top:6px}
.v32 .mini2 .alt{font-size:14px;color:var(--mute);text-align:center}
.v32 .feat{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:20px}
@media (max-width:1000px){.v32 .feat{grid-template-columns:1fr 1fr}
.v32 .feat .big{grid-column:1/-1}}
@media (max-width:640px){.v32 .feat{grid-template-columns:1fr}}
.v32 .fcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);text-decoration:none;color:#000;transition:border-color .2s;min-width:0}
.v32 .fcard:hover{border-color:#000}
.v32 .fvis{position:relative;background:var(--pale);display:flex;align-items:center;justify-content:center;padding:62px 20px 22px;min-height:220px}
.v32 .fvis .lg, .v32 .rel .lg{position:absolute;top:14px;left:14px;background:#fff;padding:5px 10px;font-weight:800;font-size:13px;letter-spacing:.06em}
.v32 .fbody{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.v32 .fbody .sec{font-size:13px;font-weight:600;display:inline-flex;align-self:flex-start;background:var(--pale);padding:3px 8px}
.v32 .fbody h3{font-size:18px}
.v32 .big .fbody h3{font-size:21px}
.v32 .ffacts{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--mute)}
.v32 .ffacts b{color:#000;font-size:15px}
.v32 .fbody .more{margin-top:auto;font-weight:600;font-size:15px}
.v32 .refhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px}
.v32 .filters{display:flex;flex-wrap:wrap;gap:6px}
.v32 .filters button{font:500 14px var(--sans);background:#fff;border:1px solid var(--line);padding:7px 12px;cursor:pointer;color:#000}
.v32 .filters button.on{background:#000;color:#fff;border-color:#000}
.v32 .rc .rtop{background:var(--pale);display:flex;justify-content:space-between;align-items:center;padding:22px 20px;gap:10px}
.v32 .rc .wm2{font-weight:800;letter-spacing:.06em;font-size:17px;background:#fff;padding:8px 12px}
.v32 .rc .since{font-size:13px;font-weight:600;color:var(--deep);white-space:nowrap}
.v32 .rc[hidden]{display:none!important}
.v32 .aussi{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;border-top:1px solid var(--line);padding-top:20px;font-size:14px;color:var(--mute)}
.v32 .aussi b{color:#000}
.v32{--mute:#555555}
.v32{line-height:1.7;color:#1a1a1a;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.v32 p{max-width:64ch}
.v32 h1, .v32 h2, .v32 h3{font-weight:650;letter-spacing:-.015em}
.v32 h1{line-height:1.12}
.v32 h2{line-height:1.2}
.v32 .prose{gap:48px}
.v32 .prose h2{margin-bottom:12px}
.v32 .prose p+p{margin-top:12px}
.v32 .tl2 li{border-top-color:#eeeeee;padding-block:14px}
.v32 .card, .v32 .fcard{border-color:#ececec}
.v32 .card:hover, .v32 .fcard:hover{border-color:#000}
.v32 .note{color:#777;font-size:12.5px}
.v32 .eyebrow{letter-spacing:.01em}
.v32 .mute{color:var(--mute)}
.v32 .result div{border-color:#ececec;border-top-color:var(--deep)}
.v32 .result span, .v32 .card p, .v32 .tag, .v32 .hub span, .v32 .chain span{line-height:1.45}
.v32 .ext{white-space:nowrap}
.v32 .aside{line-height:1.5}
.v32 .aside dd{line-height:1.45}
.v32 .hub2{display:grid;grid-template-columns:1fr 1.15fr 1fr;grid-template-rows:auto auto;grid-template-areas:"s1 core s2" "s4 core s5";gap:14px 30px;align-items:stretch}
.v32 .hub2 .s1{grid-area:s1}
.v32 .hub2 .s2{grid-area:s2}
.v32 .hub2 .s4{grid-area:s4}
.v32 .hub2 .s5{grid-area:s5}
.v32 .sat2{background:#fff;padding:14px 16px;display:flex;flex-direction:column;gap:3px;position:relative;min-width:0}
.v32 .sat2 b{font-size:15px;line-height:1.3}
.v32 .sat2 span{font-size:13px;color:var(--mute);line-height:1.45}
.v32 .sat2.l::after, .v32 .sat2.r::before{content:"";position:absolute;top:50%;width:30px;height:2px;background:var(--deep)}
.v32 .sat2.l::after{right:-30px}
.v32 .sat2.r::before{left:-30px}
.v32 .core{grid-area:core;background:var(--mint);display:flex;align-items:center;justify-content:center;gap:10px;padding:24px 18px;text-align:center}
.v32 .core b{display:flex;align-items:center;justify-content:center;gap:6px;font-size:24px;font-weight:700;letter-spacing:-.01em;line-height:1.1;white-space:nowrap;margin-bottom:8px}
.v32 .core span{font-size:13px;color:#0d3b2a;line-height:1.4}
.v32 .core .br2{font-size:30px;font-weight:300;line-height:1;color:#000}
.v32 .core span:not(.br2){display:block;max-width:20ch;margin:0 auto}
.v32 .ba{grid-template-columns:minmax(0,3fr) auto minmax(0,8fr)}
.v32 .hub2{gap:12px 26px}
.v32 .sat2.l::after{right:-26px;width:26px}
.v32 .sat2.r::before{left:-26px;width:26px}
@media (max-width:700px){.v32 .hub2{grid-template-columns:1fr;grid-template-areas:"core" "s1" "s2" "s4" "s5";gap:10px}
.v32 .sat2.l::after, .v32 .sat2.r::before{display:none}}
.v32 .run{margin:0;background:#fff;padding:20px 22px;display:flex;flex-direction:column;gap:12px;max-width:460px;justify-self:end;width:100%}
.v32 .runh{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}
.v32 .live{font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.v32 .live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--deep)}
.v32 .run ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.v32 .run li{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:9px 0;border-top:1px solid #f0f0f0;font-size:14px;line-height:1.4}
.v32 .run time{font-variant-numeric:tabular-nums;color:var(--mute);font-size:13px}
.v32 .run li.ok{background:var(--pale);margin:4px -10px 0;padding:10px;border-top:0;font-weight:600}
@media (max-width:900px){.v32 .run{justify-self:stretch}}
.v32 .uc{background:#fff;border:1px solid #ececec;padding:20px;display:flex;flex-direction:column;gap:10px;min-width:0}
.v32 .uc[hidden]{display:none!important}
.v32 .uct{display:flex;justify-content:space-between;gap:8px;align-items:center}
.v32 .geste{font-size:12px;font-weight:600;background:var(--pale);padding:3px 8px}
.v32 .st{font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px;color:#0d3b2a}
.v32 .st::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--deep)}
.v32 .uc h3{font-size:17px;line-height:1.3}
.v32 .uc p{font-size:14.5px;color:var(--mute);line-height:1.55}
.v32 .ucf{margin-top:auto;display:flex;justify-content:space-between;gap:8px;border-top:1px solid #f0f0f0;padding-top:10px;font-size:13px}
.v32 .ucf span{color:var(--mute)}
.v32 .guards>div{display:flex;flex-direction:column;gap:6px;background:#fff;padding:20px}
.v32 .guards .n{font-size:20px;font-weight:700;color:var(--deep)}
.v32 .guards p{font-size:14.5px;color:var(--mute);line-height:1.55}
.v32 .ia2 .eyebrow{font-weight:600;color:#000}
.v32 .ia-hero{background:var(--mint);padding-block:28px 72px;overflow:hidden}
.v32 .ia-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;margin-bottom:40px}
.v32 .ia-top a{text-decoration:none;font-weight:600}
.v32 .pill-live{display:inline-flex;align-items:center;gap:8px;background:#000;color:#fff;padding:6px 12px;font-weight:600}
.v32 .pill-live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mint);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.v32 .ia-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center}
@media (max-width:900px){.v32 .ia-grid{grid-template-columns:1fr;gap:36px}}
.v32 .ia-copy{display:flex;flex-direction:column;gap:22px;min-width:0}
.v32 .ia-copy h1{font-size:clamp(36px,5vw,68px);line-height:1.02;letter-spacing:-.035em;font-weight:750}
.v32 .ia-copy h1 em{font-style:normal;display:block;color:#0b3d2b}
.v32 .ia-copy p{font-size:18px;max-width:46ch;color:#0d2a20}
.v32 .ia-cta{display:flex;gap:10px;flex-wrap:wrap}
.v32 .btn.ghost{background:transparent;border-color:#000}
.v32 .console{margin:0;background:#fff;padding:20px 22px 14px;display:flex;flex-direction:column;gap:10px;min-height:330px;min-width:0}
.v32 .c-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid #eee;padding-bottom:12px}
.v32 .c-head .dot{width:10px;height:10px;border-radius:50%;background:var(--deep);animation:pulse 1.6s infinite}
.v32 .c-sub{font-size:12px;color:var(--mute);margin-left:auto}
.v32 .console ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;flex:1}
.v32 .console li{display:grid;grid-template-columns:48px 1fr;gap:10px;padding:8px 0;font-size:14px;line-height:1.4;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.v32 .console li.in{opacity:1;transform:none}
.v32 .console li time{font-variant-numeric:tabular-nums;color:var(--mute);font-size:12.5px;padding-top:1px}
.v32 .console li.done{background:var(--pale);margin-inline:-10px;padding:10px;font-weight:600}
.v32 .console li.done time{color:#0b3d2b}
.v32 .console figcaption{font-size:11.5px;color:#888}
.v32 .caret::after{content:"▍";animation:pulse 1s infinite;margin-left:2px;color:var(--deep)}
.v32 .ribbon{background:#000;color:#fff;overflow:hidden;padding-block:14px;border-block:0}
.v32 .rtrack{display:flex;gap:22px;width:max-content;animation:marq 38s linear infinite;font-size:15px;font-weight:500;white-space:nowrap}
.v32 .rtrack i{font-style:normal;color:var(--mint)}
@keyframes marq{to{transform:translateX(-50%)}}
.v32 .sec-head{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}
.v32 .sec-head h2{font-size:clamp(26px,3vw,40px);letter-spacing:-.025em;max-width:24ch}
.v32 .player-sec{padding-block:80px}
.v32 .player{display:grid;grid-template-columns:300px 1fr;border:1.5px solid #000;min-height:380px}
@media (max-width:900px){.v32 .player{grid-template-columns:1fr}}
.v32 .p-list{display:flex;flex-direction:column;border-right:1.5px solid #000}
@media (max-width:900px){.v32 .p-list{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1.5px solid #000}
.v32 .p-list button{min-width:190px}}
.v32 .p-list button{all:unset;cursor:pointer;padding:16px 18px;border-bottom:1px solid #e6e6e6;display:flex;flex-direction:column;gap:2px;transition:background .2s}
.v32 .p-list button b{font-size:15px}
.v32 .p-list button span{font-size:12px;color:var(--mute)}
.v32 .p-list button:hover{background:var(--pale)}
.v32 .p-list button[aria-selected="true"]{background:#000;color:#fff}
.v32 .p-list button[aria-selected="true"] span{color:var(--mint)}
.v32 .p-list button:focus-visible{outline:2px solid var(--deep);outline-offset:-2px}
.v32 .p-stage{padding:24px 28px;display:grid;grid-template-columns:200px 1fr;grid-template-rows:1fr auto;gap:18px 28px;min-width:0;background:#fff}
@media (max-width:700px){.v32 .p-stage{grid-template-columns:1fr}}
.v32 .p-viz{grid-row:1;display:flex;align-items:center;justify-content:center;background:var(--pale);min-height:200px;position:relative;overflow:hidden}
.v32 .p-steps{list-style:none;margin:0;padding:0;counter-reset:ps;display:flex;flex-direction:column;justify-content:center}
.v32 .p-steps li{counter-increment:ps;display:grid;grid-template-columns:34px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #f0f0f0;font-size:15px;line-height:1.4;opacity:0;transform:translateX(-8px);transition:opacity .35s,transform .35s}
.v32 .p-steps li::before{content:counter(ps,decimal-leading-zero);font-weight:700;color:var(--deep);font-size:13px;padding-top:2px}
.v32 .p-steps li.in{opacity:1;transform:none}
.v32 .p-steps li.last{font-weight:650}
.v32 .p-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--mute);border-top:1px solid #eee;padding-top:12px}
.v32 .replay{font:600 13px var(--sans);background:none;border:1px solid #000;padding:6px 10px;cursor:pointer}
.v32 .v-doc{width:120px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:7px}
.v32 .v-doc i{height:6px;background:#ddd;display:block}
.v32 .v-doc i.hl{background:var(--mint)}
.v32 .v-doc i:nth-child(2){width:80%}
.v32 .v-doc i:nth-child(4){width:60%}
.v32 .wave, .v32 .v-wave{display:flex;align-items:center;gap:4px;height:70px}
.v32 .wave i, .v32 .v-wave i{width:5px;background:currentColor;height:20%;animation:wv 1.1s ease-in-out infinite}
.v32 .wave i:nth-child(3n), .v32 .v-wave i:nth-child(3n){animation-delay:-.3s}
.v32 .wave i:nth-child(4n+1), .v32 .v-wave i:nth-child(4n+1){animation-delay:-.6s}
.v32 .wave i:nth-child(5n+2), .v32 .v-wave i:nth-child(5n+2){animation-delay:-.85s}
@keyframes wv{0%,100%{height:15%}50%{height:95%}}
.v32 .v-wave{color:#000}
.v32 .v-card{width:150px;height:92px;background:#fff;border:1.5px solid #000;padding:10px;display:flex;flex-direction:column;gap:6px;position:relative}
.v32 .v-card i{height:6px;background:#ccc;display:block;width:70%}
.v32 .v-card i.s{width:40%;background:var(--deep)}
.v32 .beam{position:absolute;left:0;right:0;height:3px;background:var(--deep);top:10%;animation:scan 1.8s ease-in-out infinite alternate}
@keyframes scan{to{top:88%}}
.v32 .v-euro{font-size:44px;font-weight:750}
.v32 .bento-sec{background:var(--mist);padding-block:80px}
.v32 .bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(200px,auto);gap:14px}
@media (max-width:1000px){.v32 .bento{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.v32 .bento{grid-template-columns:1fr}}
.v32 .b{background:#fff;padding:22px;display:flex;flex-direction:column;gap:10px;min-width:0;position:relative;overflow:hidden;transition:transform .25s}
.v32 .b:hover{transform:translateY(-3px)}
.v32 .b h3{font-size:19px;line-height:1.25;letter-spacing:-.01em}
.v32 .b p{font-size:14.5px;color:var(--mute);line-height:1.5}
.v32 .b footer{margin-top:auto;font-size:12.5px;font-weight:600;padding-top:8px}
.v32 .b-tag{font-size:11.5px;font-weight:700;letter-spacing:.04em;align-self:flex-start;border:1px solid currentColor;padding:2px 7px}
.v32 .b-big{grid-column:span 2;grid-row:span 2}
.v32 .b-big h3{font-size:clamp(24px,2.4vw,32px)}
.v32 .b-wide{grid-column:span 2}
@media (max-width:560px){.v32 .b-big, .v32 .b-wide{grid-column:auto;grid-row:auto}}
.v32 .b-mint{background:var(--mint)}
.v32 .b-mint p{color:#0d2a20}
.v32 .b-dark{background:#000;color:#fff}
.v32 .b-dark p{color:#bdbdbd}
.v32 .b-dark .wave{color:var(--mint);margin-top:6px}
.v32 .b-pale{background:var(--pale)}
.v32 .flowline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.v32 .flowline span{background:#fff;padding:8px 12px;font-weight:600;font-size:14px;position:relative}
.v32 .flowline span:not(:last-child)::after{content:"→";position:absolute;right:-14px;top:50%;transform:translateY(-50%);font-weight:400}
.v32 .flowline span{margin-right:12px}
.v32 .flowline .hl{background:#000;color:var(--mint)}
.v32 .cardscan{position:relative;height:90px;display:flex;align-items:center;justify-content:center;background:var(--pale);margin-top:4px}
.v32 .cs-card{width:120px;height:70px;background:#fff;border:1.5px solid #000;padding:9px;display:flex;flex-direction:column;gap:6px}
.v32 .cs-card i{height:5px;background:#ccc;display:block;width:70%}
.v32 .cs-card i.s{width:45%;background:var(--deep)}
.v32 .cardscan .beam{left:20%;right:20%}
.v32 .typing{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.v32 .typing i{height:6px;background:#e3e3e3;display:block;width:0;animation:typew 3s steps(20) infinite}
.v32 .typing i:nth-child(2){animation-delay:.6s}
.v32 .typing i:nth-child(3){animation-delay:1.2s}
@keyframes typew{0%{width:0}60%,100%{width:92%}}
.v32 .soon{margin-top:18px;font-size:14px;color:var(--mute)}
.v32 .soon b{color:#000;margin-right:8px}
.v32 .guard-sec{padding-block:80px}
.v32 .guard2{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1.5px solid #000}
@media (max-width:900px){.v32 .guard2{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.v32 .guard2{grid-template-columns:1fr}}
.v32 .guard2 li{padding:22px 22px 22px 0;display:flex;flex-direction:column;gap:6px;min-width:0}
.v32 .guard2 span{font-size:clamp(40px,4.4vw,64px);font-weight:750;line-height:1;color:var(--mint);-webkit-text-stroke:1.5px #000}
.v32 .guard2 b{font-size:18px}
.v32 .guard2 p{font-size:14.5px;color:var(--mute);line-height:1.5}
.v32 .b-big .flowline{flex-direction:column;align-items:stretch;gap:26px;margin-top:auto;margin-bottom:12px;max-width:340px}
.v32 .b-big .flowline span{margin-right:0;font-size:17px;padding:14px 16px}
.v32 .b-big .flowline span:not(:last-child)::after{content:"↓";right:auto;left:16px;top:auto;bottom:-24px;transform:none}
.v32 .b-big footer{margin-top:0}
@media (prefers-reduced-motion:reduce){.v32 .rtrack, .v32 .wave i, .v32 .v-wave i, .v32 .beam, .v32 .typing i, .v32 .pill-live::before, .v32 .c-head .dot{animation:none!important}
.v32 .typing i{width:90%}}
.v32 .logowall{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid #ececec;border-left:1px solid #ececec}
@media (max-width:900px){.v32 .logowall{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:480px){.v32 .logowall{grid-template-columns:repeat(2,minmax(0,1fr))}}
.v32 .lw-cell{height:104px;display:flex;align-items:center;justify-content:center;border-right:1px solid #ececec;border-bottom:1px solid #ececec;padding:14px;transition:background .2s}
.v32 .lw-cell:hover{opacity:1;background:var(--pale)}
.v32 .lw-more{flex-direction:column;gap:2px;filter:none;opacity:1;background:var(--pale)}
.v32 .lw-more b{font-size:22px}
.v32 .lw-more small{font-size:12px;color:var(--mute);text-align:center}
.v32 .lw-cell img{max-height:34px;max-width:100%;width:auto}
.v32 .lw-cell span{font-weight:800;letter-spacing:.06em;font-size:14px;text-align:center}
.v32 .lw-cell{position:relative}
.v32 .lw-over{position:absolute;inset:0;background:#000;color:#fff;padding:8px 10px;display:flex;flex-direction:column;justify-content:center;gap:3px;opacity:0;transition:opacity .18s;text-align:center}
.v32 .lw-over b{font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.v32 .lw-over p{margin:0;font-size:11px;line-height:1.3;color:#fff}
.v32 .lw-over .lw-go{color:var(--mint);font-size:11px;font-weight:700;text-decoration:none;margin-top:2px}
.v32 .lw-cell:hover .lw-over, .v32 .lw-cell:focus-within .lw-over{opacity:1}
.v32 .lw-cell:not([data-cas]) .lw-over{background:var(--pale);color:#000}
.v32 .lw-cell:not([data-cas]) .lw-over p{color:#000}
@media (hover:none){.v32 .lw-over{display:none}}
.v32 .two-eq{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
@media (max-width:760px){.v32 .two-eq{grid-template-columns:1fr}}
.v32 .card:has(.animv){display:flex;flex-direction:column}
.v32 .card:has(.animv) .body{flex:1}
.v32 .card .vis.animv{display:block;aspect-ratio:auto;padding:14px 14px 10px;background:var(--pale)}
.v32 .card .vis.animv .lg{position:static;display:inline-block;margin-bottom:10px;background:#fff;padding:5px 10px;font-weight:800;font-size:13px;letter-spacing:.06em}
.v32 .card .vis.animv .anim-ma{background:#fff;padding:10px 10px 8px}
.v32 .orch-sec{padding-block:72px;background:var(--mist)}
.v32 .orch-grid{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:center}
@media (max-width:860px){.v32 .orch-grid{grid-template-columns:1fr}}
.v32 .orch-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:10px}
.v32 .orch-list li{display:grid;grid-template-columns:170px 1fr;gap:12px;padding:10px 0;border-top:1px solid #ddd;font-size:15px;line-height:1.45}
.v32 .orch-list b{font-weight:700}
.v32 .orch-list span{color:var(--mute)}
@media (max-width:560px){.v32 .orch-list li{grid-template-columns:1fr}}
.v32 .orch-fig{margin:0}
.v32 .orch-fig svg{width:100%;height:auto;display:block}
.v32 .refgrid2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;grid-auto-flow:dense}
@media (max-width:900px){.v32 .refgrid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.v32 .refgrid2{grid-template-columns:1fr}}
.v32 .refgrid2 .wide{grid-column:span 2;flex-direction:row}
@media (max-width:560px){.v32 .refgrid2 .wide{grid-column:auto;flex-direction:column}}
.v32 .refgrid2 .wide .rvis{flex:1.2;min-height:240px}
.v32 .refgrid2 .wide .body{flex:1;justify-content:center;padding:28px}
.v32 .refgrid2 .wide h3{font-size:21px}
.v32 .rvis{position:relative;min-height:200px;padding:58px 20px 20px;display:flex;align-items:center;justify-content:center}
.v32 .rvis .wm2{position:absolute;top:14px;left:14px;font-weight:800;letter-spacing:.06em;font-size:13px;background:#fff;padding:6px 10px}
.v32 .rvis .since{position:absolute;top:18px;right:16px;font-size:12px;font-weight:600;color:#0b3d2b}
.v32 .rvis .ill{width:100%;display:flex;justify-content:center}
.v32 .v-pale .rvis{background:var(--pale)}
.v32 .v-grey .rvis{background:#F2F2F2}
.v32 .v-white .rvis{background:#fff;border-bottom:1px solid #ececec}
.v32 .v-white .rvis .wm2{border:1px solid #e3e3e3}
.v32 .v-mint .rvis{background:var(--mint)}
.v32 .v-mint .rvis .since{color:#000}
.v32 .parcels{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.v32 .parcels span{border:1.5px solid #000;padding:14px 12px;font-size:12px;font-weight:600;background:#fff}
.v32 .parcels .on{background:var(--mint)}
.v32 .valid{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center;font-size:12px;font-weight:600}
.v32 .valid span{background:#fff;padding:9px 10px;border:1px solid #ddd}
.v32 .valid .on{background:#000;color:var(--mint);border-color:#000}
.v32 .pgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:100%;max-width:340px}
.v32 .pgrid i{height:22px;background:#fff}
.v32 .pgrid i.a{background:#000}
.v32 .pgrid i.b{background:var(--deep)}
.v32 .cal{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:100%;max-width:220px}
.v32 .cal i{height:24px;background:#F2F2F2}
.v32 .cal i.a{background:var(--mint)}
.v32 .cal i.b{background:#000}
.v32 .api{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}
.v32 .api div{background:#fff;padding:12px 14px;display:flex;flex-direction:column;gap:2px;border:1px solid #ddd}
.v32 .api small{font-size:11px;color:var(--mute)}
.v32 .api b{font-size:14px;font-family:ui-monospace,Menlo,monospace}
.v32 .api .on{background:#000;color:#fff;border-color:#000}
.v32 .api .on small{color:var(--mint)}
.v32 .api i{font-style:normal;font-size:20px}
.v32 .reflist{display:flex;flex-direction:column;gap:48px}
.v32 .sec-group[hidden]{display:none!important}
.v32 .sec-title{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:2px solid #000;margin-bottom:4px}
.v32 .sec-title h3{font-size:22px;letter-spacing:-.01em}
.v32 .sec-ico{width:34px;height:34px;background:var(--mint);display:grid;place-items:center;flex:none}
.v32 .sec-ico svg{width:20px;height:20px}
.v32 .sec-n{margin-left:auto;font-size:13px;color:var(--mute);font-weight:600}
.v32 .ref{display:grid;grid-template-columns:150px minmax(0,1fr) 260px;gap:28px;padding:26px 0;border-bottom:1px solid #e6e6e6;align-items:start}
@media (max-width:900px){.v32 .ref{grid-template-columns:110px minmax(0,1fr)}
.v32 .ref-side{grid-column:1/-1}}
@media (max-width:560px){.v32 .ref{grid-template-columns:1fr}}
.v32 .ref-logo{height:110px;background:#fff;border:1px solid #e6e6e6;display:flex;align-items:center;justify-content:center;padding:14px}
.v32 .ref:hover .ref-logo{border-color:#000}
.v32 .ref-logo img{max-width:100%;max-height:60px}
.v32 .ref-logo span{font-weight:800;letter-spacing:.06em;font-size:14px;text-align:center;line-height:1.3}
.v32 .ref-main{display:flex;flex-direction:column;gap:8px;min-width:0}
.v32 .ref-meta{font-size:13px;font-weight:600;color:#0b3d2b}
.v32 .ref-main h3{font-size:26px;letter-spacing:-.02em;line-height:1.15}
.v32 .ref-built{font-size:15.5px;line-height:1.55;color:#1a1a1a;max-width:60ch}
.v32 .ref-built b{font-weight:650}
.v32 .ref-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.v32 .ref-chips span{font-size:12.5px;font-weight:500;background:var(--pale);padding:4px 9px}
.v32 .ref-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.v32 .ref-fact{display:flex;flex-direction:column;gap:2px;border-left:3px solid var(--deep);padding-left:12px}
.v32 .ref-fact b{font-size:26px;line-height:1;letter-spacing:-.02em}
.v32 .ref-fact span{font-size:13px;color:var(--mute);line-height:1.4}
.v32 .ref-vis{background:#F5F5F5;padding:14px;display:flex;justify-content:center;align-items:center;min-height:110px}
.v32 .ref-vis .mui{max-width:230px}
.v32 .ref-side .more{font-weight:600;font-size:14px;text-decoration:none}
.v32 .sec-title{gap:16px;padding-bottom:16px}
.v32 .sec-ico{width:56px;height:56px}
.v32 .sec-ico svg{width:30px;height:30px}
.v32 .sec-title h3{font-size:26px}
.v32 .ref-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.v32 .sec-tag{display:inline-flex;align-items:center;gap:6px;background:#000;color:#fff;font-size:12px;font-weight:600;padding:4px 9px 4px 6px}
.v32 .sec-tag svg{width:14px;height:14px;color:var(--mint)}
.v32 .sec-tag + .since::before{content:"·";margin-right:10px;color:#bbb}
.v32 .scards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
@media (max-width:1000px){.v32 .scards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:600px){.v32 .scards{grid-template-columns:1fr 1fr}}
.v32 .scard{display:flex;flex-direction:column;text-decoration:none;color:#000;background:#fff;border:1px solid #ececec;min-width:0;transition:border-color .2s}
.v32 .scard:hover{border-color:#000}
.v32 .sphoto{aspect-ratio:4/3;position:relative;overflow:hidden;background:#0b1a14;
 background-image:linear-gradient(160deg,rgba(110,240,190,.55),rgba(0,0,0,0) 55%),repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 2px,transparent 2px 9px)}
.v32 .sphoto::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),transparent 60%)}
.v32 .sphoto img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);mix-blend-mode:luminosity}
.v32 .sph-label{position:absolute;left:12px;right:12px;bottom:12px;z-index:1;color:#d4f7e5;font-size:11.5px;line-height:1.35}
.v32 .sbody{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}
.v32 .srow{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.v32 .srow b{font-size:16px}
.v32 .srow span{font-size:12px;color:var(--mute);white-space:nowrap}
.v32 .sbody p{font-size:13.5px;color:var(--mute);line-height:1.45}
.v32 .anim-ma{background:#F5F5F5;padding:12px 12px 10px;position:relative;width:100%}
.v32 .anim-ma svg{width:100%;height:auto;display:block}
.v32 .anim-ma .cap{position:relative;height:34px;margin-top:6px;font-size:12px;line-height:1.35;color:#000}
.v32 .anim-ma .cap span{position:absolute;inset:0;opacity:0;animation:cap 15s infinite}
.v32 .anim-ma .cap .c2{animation-delay:5s}
.v32 .anim-ma .cap .c3{animation-delay:10s}
@keyframes cap{0%,2%{opacity:0;transform:translateY(4px)}5%,30%{opacity:1;transform:none}33.3%,100%{opacity:0}}
.v32 .anim-ma .steps3{display:flex;gap:4px;margin-top:6px}
.v32 .anim-ma .steps3 i{flex:1;height:3px;background:#ddd;position:relative;overflow:hidden}
.v32 .anim-ma .steps3 i::after{content:"";position:absolute;inset:0;background:#000;transform:scaleX(0);transform-origin:left;animation:bar 15s infinite}
.v32 .anim-ma .steps3 i:nth-child(2)::after{animation-delay:5s}
.v32 .anim-ma .steps3 i:nth-child(3)::after{animation-delay:10s}
@keyframes bar{0%{transform:scaleX(0)}33.3%{transform:scaleX(1)}33.4%,100%{transform:scaleX(0)}}
.v32 .anim-ma .a1{animation:a1 15s infinite}
@keyframes a1{0%{opacity:0}3%,26%{opacity:1}33%,100%{opacity:0}}
.v32 .anim-ma .pc{animation:pcin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-ma .p2{animation-delay:.3s}
.v32 .anim-ma .p3{animation-delay:.6s}
.v32 .anim-ma .p4{animation-delay:.9s}
.v32 .anim-ma .p5{animation-delay:1.2s}
@keyframes pcin{0%{opacity:0;transform:translateY(8px)}6%,24%{opacity:1;transform:none}30%,100%{opacity:0;transform:scale(.6)}}
.v32 .anim-ma .warn{animation:blink 15s infinite}
@keyframes blink{0%,12%{opacity:0}14%,16%{opacity:1}18%{opacity:.2}20%,26%{opacity:1}30%,100%{opacity:0}}
.v32 .anim-ma .paper{animation:paperin 15s infinite}
@keyframes paperin{0%,15%{opacity:0}18%,26%{opacity:1}30%,100%{opacity:0}}
.v32 .anim-ma .a2{animation:a2 15s infinite}
@keyframes a2{0%,32%{opacity:0}35%,62%{opacity:1}66%,100%{opacity:0}}
.v32 .anim-ma .cloud{transform-box:fill-box;transform-origin:center;animation:cloudin 15s infinite}
@keyframes cloudin{0%,33%{transform:scale(.2);opacity:0}38%{transform:scale(1.06);opacity:1}40%,100%{transform:scale(1);opacity:1}}
.v32 .anim-ma .l{stroke-dasharray:140;stroke-dashoffset:140;animation:draw 15s infinite}
.v32 .anim-ma .l2{animation-delay:.2s}
.v32 .anim-ma .l3{animation-delay:.4s}
.v32 .anim-ma .l4{animation-delay:.6s}
.v32 .anim-ma .l5{animation-delay:.8s}
.v32 .anim-ma .l6{animation-delay:1s}
@keyframes draw{0%,38%{stroke-dashoffset:140}46%,100%{stroke-dashoffset:0}}
.v32 .anim-ma .sat{animation:satin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-ma .s2{animation-delay:.2s}
.v32 .anim-ma .s3{animation-delay:.4s}
.v32 .anim-ma .s4{animation-delay:.6s}
.v32 .anim-ma .s5{animation-delay:.8s}
.v32 .anim-ma .s6{animation-delay:1s}
@keyframes satin{0%,42%{opacity:0;transform:scale(.7)}48%,100%{opacity:1;transform:none}}
.v32 .anim-ma .a3{animation:a3 15s infinite}
@keyframes a3{0%,65%{opacity:0}69%,96%{opacity:1}100%{opacity:0}}
.v32 .anim-ma .ring{transform-box:fill-box;transform-origin:center;animation:ring 1.6s infinite}
@keyframes ring{0%{transform:scale(1);opacity:1}100%{transform:scale(1.7);opacity:0}}
.v32 .anim-ma .task{animation:taskin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-ma .t2{animation-delay:.5s}
.v32 .anim-ma .t3{animation-delay:1s}
.v32 .anim-ma .t4{animation-delay:1.5s}
@keyframes taskin{0%,70%{opacity:0;transform:translateY(6px)}75%,100%{opacity:1;transform:none}}
.v32 .anim-ma .d{animation:dot 15s infinite;opacity:0}
.v32 .anim-ma .d1{offset-path:path("M160 100 L68 51");}
.v32 .anim-ma .d2{offset-path:path("M160 100 L252 51");animation-delay:.5s}
.v32 .anim-ma .d3{offset-path:path("M160 100 L68 151");animation-delay:1s}
.v32 .anim-ma .d4{offset-path:path("M160 100 L252 151");animation-delay:1.5s}
@keyframes dot{0%,70%{offset-distance:0%;opacity:0}71%{opacity:1}76%{offset-distance:100%;opacity:1}77%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.v32 .anim-ma *{animation:none!important}
.v32 .anim-ma .a1, .v32 .anim-ma .a3{display:none}
.v32 .anim-ma .a2, .v32 .anim-ma .a2 *{opacity:1;stroke-dashoffset:0}
.v32 .anim-ma .cap .c2{opacity:1}}
.v32 .ref-hero{grid-template-columns:150px minmax(0,1fr) 360px}
@media (max-width:900px){.v32 .ref-hero{grid-template-columns:110px minmax(0,1fr)}}
.v32 .ref-vis.big{padding:0;background:transparent;align-items:stretch}
.v32 .anim-sec .cap span{animation:cap2 12s infinite}
.v32 .anim-sec .cap .c2{animation-delay:6s}
@keyframes cap2{0%,2%{opacity:0;transform:translateY(4px)}5%,45%{opacity:1;transform:none}50%,100%{opacity:0}}
.v32 .anim-sec .steps3 i::after{animation:bar2 12s infinite}
.v32 .anim-sec .steps3 i:nth-child(2)::after{animation-delay:6s}
@keyframes bar2{0%{transform:scaleX(0)}50%{transform:scaleX(1)}50.1%,100%{transform:scaleX(0)}}
.v32 .anim-sec .s1{animation:sa1 12s infinite}
@keyframes sa1{0%{opacity:0}3%,44%{opacity:1}50%,100%{opacity:0}}
.v32 .anim-sec .q{animation:qin 12s infinite}
.v32 .anim-sec .q2{animation-delay:.4s}
.v32 .anim-sec .q3{animation-delay:.8s}
.v32 .anim-sec .q4{animation-delay:1.2s}
@keyframes qin{0%,5%{opacity:0}9%,100%{opacity:1}}
.v32 .anim-sec .tot{animation:totin 12s infinite}
@keyframes totin{0%,18%{opacity:0}21%,100%{opacity:1}}
.v32 .anim-sec .cross{animation:crossin 12s infinite;transform-box:fill-box;transform-origin:center}
@keyframes crossin{0%,24%{opacity:0;transform:translateX(6px)}27%,100%{opacity:1;transform:none}}
.v32 .anim-sec .eraser{animation:erin 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-sec .e2{animation-delay:.6s}
.v32 .anim-sec .e3{animation-delay:1.2s}
@keyframes erin{0%,28%{opacity:0;transform:translateY(5px)}32%,100%{opacity:1;transform:none}}
.v32 .anim-sec .s2{animation:sa2 12s infinite}
@keyframes sa2{0%,49%{opacity:0}53%,97%{opacity:1}100%{opacity:0}}
.v32 .anim-sec .typed{animation:typed 12s infinite}
@keyframes typed{0%,53%{opacity:0}60%,100%{opacity:1}}
.v32 .anim-sec .caret{animation:caret 12s infinite}
@keyframes caret{0%,52%{opacity:0}54%,57%{opacity:1}58%{opacity:0}60%,61%{opacity:1}62%,100%{opacity:0}}
.v32 .anim-sec .btn{animation:btnp 12s infinite;transform-box:fill-box;transform-origin:center}
@keyframes btnp{0%,62%{transform:scale(1)}64%{transform:scale(.94)}66%,100%{transform:scale(1)}}
.v32 .anim-sec .bar{transform-box:fill-box;transform-origin:left;animation:barg 12s infinite}
.v32 .anim-sec .b2{animation-delay:.15s}
.v32 .anim-sec .b3{animation-delay:.3s}
.v32 .anim-sec .b4{animation-delay:.45s}
@keyframes barg{0%,65%{transform:scaleX(0)}72%,100%{transform:scaleX(1)}}
.v32 .anim-sec .amt{animation:amtin 12s infinite}
.v32 .anim-sec .a2{animation-delay:.15s}
.v32 .anim-sec .a3{animation-delay:.3s}
.v32 .anim-sec .a4{animation-delay:.45s}
@keyframes amtin{0%,70%{opacity:0}74%,100%{opacity:1}}
.v32 .anim-sec .ok{animation:okin 12s infinite}
@keyframes okin{0%,78%{opacity:0}82%,100%{opacity:1}}
@media (prefers-reduced-motion:reduce){.v32 .anim-sec .s1{display:none}
.v32 .anim-sec .s2, .v32 .anim-sec .s2 *{opacity:1;transform:none}
.v32 .anim-sec .cap .c2{opacity:1}}
.v32 .sphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);mix-blend-mode:luminosity;opacity:.85}
.v32 .anim-ci .k1{animation:a1 15s infinite}
.v32 .anim-ci .pap{animation:papin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-ci .p2{animation-delay:.25s}
.v32 .anim-ci .p3{animation-delay:.5s}
.v32 .anim-ci .p4{animation-delay:.75s}
.v32 .anim-ci .p5{animation-delay:1s}
@keyframes papin{0%{opacity:0;transform:translateY(-30px) rotate(-8deg)}6%,26%{opacity:1;transform:none}31%,100%{opacity:0;transform:translateY(20px)}}
.v32 .anim-ci .lab, .v32 .anim-ci .flat, .v32 .anim-ci .ag0{animation:lab 15s infinite}
@keyframes lab{0%,8%{opacity:0}11%,26%{opacity:1}31%,100%{opacity:0}}
.v32 .anim-ci .k2{animation:a2 15s infinite}
.v32 .anim-ci .tool{animation:toolin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-ci .t2{animation-delay:.5s}
.v32 .anim-ci .t3{animation-delay:1s}
@keyframes toolin{0%,34%{opacity:0;transform:translateX(-14px)}40%,100%{opacity:1;transform:none}}
.v32 .anim-ci .k2 .bulb{animation:bulb2 15s infinite;transform-box:fill-box;transform-origin:center}
@keyframes bulb2{0%,44%{opacity:0;transform:scale(.4)}48%{opacity:1;transform:scale(1.15)}50%,100%{opacity:1;transform:scale(1)}}
.v32 .anim-ci .think{animation:thinkin 15s infinite}
@keyframes thinkin{0%,46%{opacity:0}52%,100%{opacity:1}}
.v32 .anim-ci .k3{animation:a3 15s infinite}
.v32 .anim-ci .agn{animation:agin 15s infinite;transform-box:fill-box;transform-origin:bottom center}
.v32 .anim-ci .a2{animation-delay:.6s}
.v32 .anim-ci .a3{animation-delay:1.2s}
.v32 .anim-ci .a4{animation-delay:1.8s}
@keyframes agin{0%,68%{opacity:0;transform:scaleY(0)}74%,100%{opacity:1;transform:none}}
.v32 .anim-ci .agl{animation:agl 15s infinite}
@keyframes agl{0%,82%{opacity:0}86%,100%{opacity:1}}
.v32 .anim-ci .rise{stroke-dasharray:220;stroke-dashoffset:220;animation:rise 15s infinite}
@keyframes rise{0%,70%{stroke-dashoffset:220}84%,100%{stroke-dashoffset:0}}
.v32 .anim-ci .k3 .bulb{opacity:1}
@media (prefers-reduced-motion:reduce){.v32 .anim-ci .k1{display:none}
.v32 .anim-ci .k2, .v32 .anim-ci .k2 *{opacity:1;transform:none}
.v32 .anim-ci .k3{display:none}
.v32 .anim-ci .cap .c2{opacity:1}}
.v32 .anim-del .adapt{animation:qin 12s infinite}
.v32 .anim-del .st{animation:stin 12s infinite;transform-box:fill-box;transform-origin:bottom center}
.v32 .anim-del .st2{animation-delay:.9s}
.v32 .anim-del .st3{animation-delay:1.8s}
.v32 .anim-del .st4{animation-delay:2.7s}
@keyframes stin{0%,6%{opacity:0;transform:scaleY(0)}10%,100%{opacity:1;transform:none}}
.v32 .anim-del .s1 .tag{animation:tagin 12s infinite;transform-box:fill-box;transform-origin:bottom left}
.v32 .anim-del .st2 .tag{animation-delay:.9s}
.v32 .anim-del .st3 .tag{animation-delay:1.8s}
.v32 .anim-del .st4 .tag{animation-delay:2.7s}
@keyframes tagin{0%,10%{opacity:0;transform:translateY(6px)}13%,100%{opacity:1;transform:none}}
.v32 .anim-del .fill{transform-box:fill-box;transform-origin:left;animation:meter 12s infinite}
@keyframes meter{0%,8%{transform:scaleX(.1)}14%{transform:scaleX(.3)}22%{transform:scaleX(.55)}30%{transform:scaleX(.8)}38%,100%{transform:scaleX(1)}}
.v32 .anim-del .up{animation:upin 12s infinite}
@keyframes upin{0%,30%{opacity:0}34%,100%{opacity:1}}
.v32 .anim-del .fit{animation:typed 12s infinite}
.v32 .anim-del .st2x{animation:st2in 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-del .x2{animation-delay:.3s}
.v32 .anim-del .x3{animation-delay:.6s}
.v32 .anim-del .x4{animation-delay:1.6s}
@keyframes st2in{0%,56%{opacity:0;transform:scale(.8)}62%,100%{opacity:1;transform:none}}
.v32 .anim-del .s2 .meter{animation:okin 12s infinite}
.v32 .anim-help .q{animation:qin 12s infinite}
.v32 .anim-help .q2{animation-delay:.3s}
.v32 .anim-help .q3{animation-delay:.6s}
.v32 .anim-help .q4{animation-delay:.9s}
.v32 .anim-help .q5{animation-delay:1.2s}
.v32 .anim-help .eraser{animation:erin 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-help .e2{animation-delay:.5s}
.v32 .anim-help .e3{animation-delay:1s}
.v32 .anim-help .amt{animation:amtin 12s infinite}
.v32 .anim-help .a2{animation-delay:.15s}
.v32 .anim-help .a3{animation-delay:.3s}
.v32 .anim-help .a4{animation-delay:.45s}
.v32 .anim-help .tool{animation:toolin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-help .t2{animation-delay:.5s}
.v32 .anim-help .t3{animation-delay:1s}
@keyframes toolin2{0%,60%{opacity:0;transform:translateX(-10px)}66%,100%{opacity:1;transform:none}}
.v32 .anim-adar .eraser{animation:erin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-adar .e2{animation-delay:.8s}
.v32 .anim-adar .e3{animation-delay:1.6s}
@keyframes erin2{0%,6%{opacity:0;transform:translateX(-10px)}12%,100%{opacity:1;transform:none}}
.v32 .anim-adar .tool{animation:toolin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-adar .t2{animation-delay:1.2s}
.v32 .anim-adar .t3{animation-delay:1.8s}
.v32 .anim-adar .arrows .bar{transform-origin:left;animation:barg2 12s infinite}
.v32 .anim-adar .arrows .b2{animation-delay:.9s}
@keyframes barg2{0%,64%{transform:scaleX(0)}70%,100%{transform:scaleX(1)}}
.v32 .anim-ind .eraser{animation:erin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-ind .e2{animation-delay:1.2s}
.v32 .anim-ind .q1{animation:qgrow 12s infinite;transform-box:fill-box;transform-origin:center}
@keyframes qgrow{0%,12%{transform:scale(.3);opacity:0}16%{transform:scale(1.4);opacity:1}18%,100%{transform:scale(1);opacity:1}}
.v32 .anim-ind .flat{animation:lab2 12s infinite}
@keyframes lab2{0%,28%{opacity:0}32%,100%{opacity:1}}
.v32 .anim-ind .tool{animation:toolin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-ind .t2{animation-delay:.7s}
.v32 .anim-ind .t3{animation-delay:1.6s}
.v32 .anim-ind .arrows .bar{transform-origin:left;animation:barg3 12s infinite}
@keyframes barg3{0%,62%{transform:scaleX(0)}68%,100%{transform:scaleX(1)}}
.v32 .anim-ind .agn{animation:agin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-ind .a2{animation-delay:.4s}
.v32 .anim-ind .a3{animation-delay:.8s}
@keyframes agin2{0%,74%{opacity:0;transform:translateY(8px)}80%,100%{opacity:1;transform:none}}
.v32 .anim-ind .rise{stroke-dasharray:300;stroke-dashoffset:300;animation:rise2 12s infinite}
@keyframes rise2{0%,80%{stroke-dashoffset:300}92%,100%{stroke-dashoffset:0}}
.v32 .anim-ind .agl{animation:okin 12s infinite}
.v32 .anim-kass .q{animation:qin 12s infinite}
.v32 .anim-kass .q2{animation-delay:.2s}
.v32 .anim-kass .q3{animation-delay:.4s}
.v32 .anim-kass .q4{animation-delay:.6s}
.v32 .anim-kass .q5{animation-delay:.8s}
.v32 .anim-kass .walk{animation:walk 12s infinite}
.v32 .anim-kass .w2{animation-delay:1.2s}
@keyframes walk{0%,14%{opacity:0}18%,100%{opacity:1}}
.v32 .anim-kass .eraser{animation:erin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-kass .eraser{animation-delay:.9s}
.v32 .anim-kass .e2{animation-delay:2.1s}
.v32 .anim-kass .e3{animation-delay:2.8s}
.v32 .anim-kass .tool{animation:toolin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-kass .t2{animation-delay:.6s}
.v32 .anim-kass .t3{animation-delay:1.4s}
.v32 .anim-kass .t4{animation-delay:1.8s}
.v32 .anim-kass .arrows .bar{transform-origin:left;animation:barg3 12s infinite}
.v32 .anim-kass .arrows .b2{animation-delay:1s}
.v32 .anim-kass .v{animation:vin 12s infinite}
.v32 .anim-kass .v2{animation-delay:.5s}
@keyframes vin{0%,70%{opacity:0}75%,100%{opacity:1}}
.v32 .anim-kass .tk{animation:tkin 12s infinite;transform-box:fill-box;transform-origin:left}
.v32 .anim-kass .k2{animation-delay:.3s}
.v32 .anim-kass .k3{animation-delay:.6s}
.v32 .anim-kass .k4{animation-delay:.9s}
@keyframes tkin{0%,78%{opacity:0;transform:scaleX(0)}84%,100%{opacity:1;transform:none}}
.v32 .anim-ind .rise{display:none}
.v32 .anim-cap .eraser{animation:erin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-cap .e2{animation-delay:.8s}
.v32 .anim-cap .e3{animation-delay:1.6s}
.v32 .anim-cap .flat{animation:lab2 12s infinite}
.v32 .anim-cap .tool{animation:toolin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-cap .t2{animation-delay:.6s}
.v32 .anim-cap .t3{animation-delay:1.2s}
.v32 .anim-cap .t4{animation-delay:1.6s}
.v32 .anim-cap .arrows .bar{transform-origin:left;animation:barg3 12s infinite}
.v32 .anim-cap .arrows .b2{animation-delay:.8s}
.v32 .anim-cap .amt{animation:amtin2 12s infinite}
.v32 .anim-cap .a2{animation-delay:.2s}
.v32 .anim-cap .a3{animation-delay:.4s}
@keyframes amtin2{0%,78%{opacity:0}82%,100%{opacity:1}}
.v32 .anim-gene .node{animation:nodein 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-gene .n2{animation-delay:.4s}
.v32 .anim-gene .n3{animation-delay:.8s}
@keyframes nodein{0%{opacity:0;transform:translateY(6px)}5%,96%{opacity:1;transform:none}100%{opacity:0}}
.v32 .anim-gene .link path{stroke-dasharray:40;stroke-dashoffset:40;animation:ln 15s infinite}
.v32 .anim-gene .l1 path{animation-delay:0s}
.v32 .anim-gene .l2 path{animation-delay:5s}
.v32 .anim-gene .l3 path{animation-delay:10s}
@keyframes ln{0%,8%{stroke-dashoffset:40}14%,100%{stroke-dashoffset:0}}
.v32 .anim-gene .pkt{opacity:0}
.v32 .anim-gene .p1{offset-path:path("M33 90 L96 90");animation:pk 15s infinite}
.v32 .anim-gene .p2{offset-path:path("M129 82 L242 82");animation:pk 15s infinite 5s}
.v32 .anim-gene .p3{offset-path:path("M242 102 L129 102 L129 134");animation:pk 15s infinite 10s}
@keyframes pk{0%,10%{offset-distance:0%;opacity:0}12%{opacity:1}24%{offset-distance:100%;opacity:1}26%,100%{opacity:0;offset-distance:100%}}
.v32 .anim-gene .calc{animation:calc 15s infinite}
@keyframes calc{0%,56%{opacity:0}60%,100%{opacity:1}}
.v32 .anim-gene .score{animation:scorein 15s infinite;transform-box:fill-box;transform-origin:center}
@keyframes scorein{0%,64%{opacity:0;transform:scale(.6)}68%{opacity:1;transform:scale(1.08)}70%,100%{opacity:1;transform:scale(1)}}
.v32 .anim-gene .ret{animation:retin 15s infinite}
@keyframes retin{0%,84%{opacity:0}88%,100%{opacity:1}}
.v32 .anim-gene .doc, .v32 .anim-gene .mdr{animation:docin 15s infinite}
@keyframes docin{0%,4%{opacity:0}8%,96%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.v32 .anim-gene *{animation:none!important;opacity:1!important;stroke-dashoffset:0!important}
.v32 .anim-gene .pkt{display:none}
.v32 .anim-gene .cap .c3{opacity:1}}
.v32 .anim-eso .eraser{animation:erin 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-eso .tool{animation:toolin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-eso .t2{animation-delay:.7s}
.v32 .anim-eso .agn{animation:agin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-eso .a2{animation-delay:.3s}
.v32 .anim-eso .a3{animation-delay:.6s}
.v32 .anim-eso .a4{animation-delay:.9s}
.v32 .anim-eso .tl .bar{transform-box:fill-box;transform-origin:left;animation:barg3 12s infinite}
.v32 .anim-eso .yr{animation:yrin 12s infinite}
.v32 .anim-eso .y2{animation-delay:.5s}
.v32 .anim-eso .y3{animation-delay:1s}
.v32 .anim-eso .y4{animation-delay:1.5s}
@keyframes yrin{0%,62%{opacity:0}66%,100%{opacity:1}}
.v32 .anim-eso .ok{animation:okin 12s infinite}
.v32 .anim-dent .eraser{animation:erin 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-dent .tool{animation:toolin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-dent .t2{animation-delay:.6s}
.v32 .anim-dent .arrows .bar{transform-origin:left;animation:barg3 12s infinite}
.v32 .anim-dent .tbl{animation:typed 12s infinite}
.v32 .anim-dent .row{animation:rowin 12s infinite}
.v32 .anim-dent .r2{animation-delay:.35s}
.v32 .anim-dent .r3{animation-delay:.7s}
@keyframes rowin{0%,64%{opacity:0}68%,100%{opacity:1}}
.v32 .anim-dent .agn{animation:agin2 12s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-dent .a2{animation-delay:.4s}
.v32 .anim-dent .a3{animation-delay:1s}
.v32 .anim-mag .mi{animation:miin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-mag .m2{animation-delay:.5s}
.v32 .anim-mag .m3{animation-delay:1.1s}
@keyframes miin{0%{opacity:0;transform:translateY(6px)}5%,26%{opacity:1;transform:none}33%,100%{opacity:0}}
.v32 .anim-mag .btn{animation:mbtn 15s infinite;transform-box:fill-box;transform-origin:center}
@keyframes mbtn{0%,22%{transform:scale(1)}24%{transform:scale(.95)}26%,100%{transform:scale(1)}}
.v32 .anim-mag .ci{animation:ciin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-mag .c1{animation-delay:.4s}
.v32 .anim-mag .c2{animation-delay:.8s}
.v32 .anim-mag .c3{animation-delay:1.2s}
.v32 .anim-mag .c4{animation-delay:1.6s}
@keyframes ciin{0%,33%{opacity:0;transform:translateY(6px)}38%,60%{opacity:1;transform:none}66%,100%{opacity:0}}
.v32 .anim-mag .pick{animation:pickin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-mag .p2{animation-delay:.6s}
.v32 .anim-mag .p3{animation-delay:1.2s}
@keyframes pickin{0%,46%{transform:scale(1);opacity:.35}49%{transform:scale(1.08);opacity:1}51%,100%{transform:scale(1);opacity:1}}
.v32 .anim-mag .fi{animation:fiin 15s infinite;transform-box:fill-box;transform-origin:center}
.v32 .anim-mag .f2{animation-delay:.5s}
.v32 .anim-mag .f3{animation-delay:1.2s}
@keyframes fiin{0%,66%{opacity:0;transform:translateY(8px)}71%,96%{opacity:1;transform:none}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.v32 *{transition:none!important}}

@media (max-width:900px){.v32 .casegrid{grid-template-columns:1fr}}
.v32 text[data-todo]{paint-order:stroke;stroke:#FFE14D;stroke-width:7px;stroke-linejoin:round;fill:#000}
.v32 mark.todo{background:var(--todo);color:inherit;padding:0 2px}
.v32 .logowall .lw-more{grid-column:1/-1}
/* Logos fournis à la place des étiquettes texte (bin/v32.py, poser_logos) */
.v32 .lg.lg-logo{padding:6px 10px;line-height:0}
.v32 .lg.lg-logo img{display:block;height:22px;width:auto;max-width:150px}
.v32 .lw-cell img{height:auto;max-height:40px;max-width:min(100%,150px);object-fit:contain}
.v32 .lw-cell img[data-carre]{max-height:72px}
.v32 .lg.lg-logo img[data-carre]{height:40px}
.v32 .ref-logo img[data-carre]{max-height:84px}
.v32 .aussi .aussi-logo{display:inline-block;height:20px;width:auto;max-width:90px;vertical-align:middle;margin-right:8px}
.v32 .aussi .aussi-logo[data-carre]{height:30px}
.v32 footer .pied-logo{display:block;height:24px;width:auto;max-width:130px;margin-bottom:8px}
.v32 footer .pied-logo[data-carre]{height:36px}
.v32 .hero.pale{background:var(--pale)}
.v32 .faisons{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 40px}
.v32 .faisons li{border-top:2px solid var(--ink);padding-top:14px;font-size:17px;line-height:1.5}
@media (max-width:760px){.v32 .faisons{grid-template-columns:1fr}}
.v32 .faisons-format{margin-top:28px;font-size:17px;max-width:760px}
.v32 .encadre{font-size:20px;font-weight:600;border-left:4px solid var(--mint);padding:6px 0 6px 18px;max-width:760px}
.v32 .card .vis.vis-logo{background:#fff;border-bottom:1px solid var(--line)}
.v32 .card .vis.vis-logo img{max-width:55%;max-height:72px;width:auto;height:auto}
.v32 .card .vis.vis-logo img[data-carre]{max-height:110px}
.v32 .card .vis.vis-neutre{background:var(--pale)}
.v32 .card .vis.vis-neutre span{font-size:15px;font-weight:600;color:var(--deep);padding:0 20px;text-align:center}
.v32 .suite{margin:0 0 8px;font-weight:600}
/* Pages secteur (bin/gen-secteurs-v32.py) */
.v32 .sphoto{position:relative;overflow:hidden;background:var(--ink)}
.v32 .sphoto-hero{aspect-ratio:4/3;width:100%}
.v32 .sphoto-hero::after{display:none}
.v32 .sphoto-manque{background:var(--pale);display:grid;place-items:center}
.v32 .scard .sphoto{aspect-ratio:16/10}
.v32 .scards-index{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.v32 .scards-index{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.v32 .scards-index{grid-template-columns:1fr}}
.v32 .chiffres-secteur{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-block:8px 8px}
.v32 .chiffres-secteur div{padding:22px 20px 22px 0;display:flex;flex-direction:column;gap:4px}
.v32 .chiffres-secteur b{font-size:20px;line-height:1.25}
.v32 .chiffres-secteur span{font-size:14px;color:var(--mute)}
@media (max-width:760px){.v32 .chiffres-secteur{grid-template-columns:1fr 1fr}}
.v32 .cartes-longues .card p{display:block;-webkit-line-clamp:unset;overflow:visible}
.v32 .puces-systemes{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.v32 .puces-systemes li{border:1px solid var(--ink);padding:6px 12px;font-size:15px}
.v32 .secteur-cadre h2{font-size:24px}
.v32 .compte{margin-top:20px;font-size:17px;line-height:1.55}
.v32 .temoignages-v32{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;margin-top:32px}
.v32 .tq{margin:0;border-left:3px solid var(--mint);padding-left:20px}
.v32 .tq blockquote{margin:0;font-size:17px;line-height:1.55}
.v32 .tq figcaption{margin-top:16px;display:flex;flex-direction:column;gap:2px}
.v32 .tq .cite-logo{display:block;height:24px;width:auto;margin-bottom:8px;background:#fff;padding:4px 6px;box-sizing:content-box}
.v32 .bande-attente{display:block;margin:16px 0 0;padding:10px 14px}
.v32 .quote cite .cite-logo{display:block;height:24px;width:auto;margin-bottom:10px}
/* Parlons IA (brief du 13/10) : chiffres et preuve du hero, offres, méthode en six étapes, équipe IA */
.v32 .ia-chiffres{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin:4px 0 0;max-width:560px}
.v32 .ia-chiffres div{border-top:1px solid rgba(0,0,0,.25);padding-top:10px;min-width:0}
.v32 .ia-chiffres dt{font-size:22px;font-weight:750;letter-spacing:-.01em}
.v32 .ia-chiffres dd{margin:2px 0 0;font-size:14px;color:#0d2a20}
.v32 .ia-preuve{display:flex;flex-direction:column;gap:12px;max-width:560px}
.v32 .ia-preuve p{font-size:14.5px}
.v32 .ia-logos{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.v32 .ia-logos img{height:32px;width:auto;max-width:140px;object-fit:contain}
.v32 .ia-offre{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;border-top:1px solid var(--ink);padding-top:16px;min-height:44px}
.v32 .ia-offre .arr{margin-top:auto;font-weight:700}
.v32 .ia-offre:hover h3{text-decoration:underline}
.v32 .ia-methode{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.v32 .ia-methode{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.v32 .ia-methode{grid-template-columns:1fr}}
.v32 .ia-cas .b-tag{text-transform:none}
.v32 .b-dark .b-tag{color:var(--mint)}
.v32 .ia-equipe img{height:auto}
.v32 .who2 .who2-role{color:#000;font-size:14px;font-weight:500}
@media (min-width:1001px){.v32 .ia-cas .ia-large{grid-column:span 3}}
/* ---------- Retouches visuelles (Rubens, 15/10) : appliquées en dernier, sur tout le site ---------- */
:root{--edf-green-ink:#3A7360}
/* Tailles de texte : courant 16, petits 14, titres de section 44 */
body, .v32{font-size:16px}
h2, .v32 h2, .v32 .sec-head h2{font-size:clamp(30px,3.6vw,44px);line-height:1.1;letter-spacing:-.02em}
.surtitre, .ariane, .v3-chiffres .label, .v32 .tag, .v32 .note, .v32 .eyebrow, .v32 .proofs{font-size:14px}
/* Vert des petits textes : #3A7360 (5,5:1 sur blanc, 4,8:1 sur vert doux) */
.ariane, .v32 .rc .since, .v32 .built span{color:#3A7360}
/* Espacements : 96 px en haut et en bas de chaque section, 64 sur mobile */
section, .v32 section, .v32 :is(.player-sec,.bento-sec,.guard-sec,.orch-sec){padding-block:96px}
section.tight{padding-block:64px}
.v3-hero--g, .v3-chiffres{padding-block:0}
.v3-logos{padding-block:48px}
#piliers .founder{margin-top:32px}
@media (max-width:700px){
  section, .v32 section, .v32 :is(.player-sec,.bento-sec,.guard-sec,.orch-sec){padding-block:64px}
  .v3-logos{padding-block:40px}
}
/* Hero : aligné à gauche, sans pointillés, titre 52 px, « Bien plus que du code » en simple gras */
.v3-hero--g{border-bottom:0}
.v3-hero-g__texte{border-right:0}
.v3-hero-g__texte::after{display:none}
.v3-hero--g h1{font-size:52px;line-height:1.05;letter-spacing:-.025em}
@media (max-width:600px){.v3-hero--g h1{font-size:38px}}
.surligne{background:none;padding:0;font-weight:700;color:var(--edf-black)}
.hero-preuves{list-style:none;margin:24px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 24px;font-size:14px;color:var(--edf-gray-text)}
.hero-preuves li{display:inline-flex;align-items:center}
.hero-preuves a{color:inherit}
/* Icônes */
.ico{width:16px;height:16px;flex:none;margin-right:8px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;color:#3A7360}
.v32 .proofs-ico li::before{display:none}
.v32 .proofs-ico li{gap:0}
.v32 .who2 .tel .ico{vertical-align:-3px;margin-right:6px}
/* Titres de section sans crochets (ils restent dans le logo) */
.h-br::before, .h-br::after{content:none}
/* Boutons : angles arrondis 8 px, sans flèche */
.btn, .v32 .btn, .mini2 button[type=submit], .ask button{border-radius:8px}
.btn .arr, .v32 .btn .arr{display:none}
.bascule{border-radius:8px;overflow:hidden}
/* Étiquettes des cartes : texte vert foncé, sans fond */
.v32 .chips .sector, .v32 .sec-tag{background:none;color:#3A7360;padding:0}
.v32 .chips .sector svg path{stroke:#3A7360}
.v32 .sec-tag svg{color:#3A7360}
/* Logos clients : même poids visuel (hauteur calculée à la génération), gris uniforme */
.grands-noms img{height:var(--h,32px);max-height:none;width:auto;max-width:100%;filter:grayscale(1) brightness(0);opacity:.45}
.grands-noms img[src*="lolifant"]{max-height:none}
.grands-noms img:hover{filter:grayscale(1) brightness(0);opacity:.75}
/* Bandeau de chiffres : plus calme, un seul filet fin entre eux */
.v3-chiffres .figure{padding:32px 24px 32px 0;border-right:1px solid rgba(0,0,0,.1)}
.v3-chiffres .value{font-size:clamp(28px,2.6vw,36px);font-weight:600}
/* Cartes et piliers : fond gris clair, angles 12 px, sans bordure */
.piliers{gap:16px;background:none;border:0}
.pilier{background:#F5F5F5;border:0;border-radius:12px;padding:32px 24px}
.carte-projet, .carte-secteur, .v32 .card{border:0;border-radius:12px;overflow:hidden;background:#F5F5F5}
.v32 :is(.mist,.bento-sec,.orch-sec,.casehead) .card{background:#fff}
/* Témoignages : trois cartes côte à côte, initiales dans un rond vert */
.temoignages-trois{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}
@media (max-width:900px){.temoignages-trois{grid-template-columns:1fr}}
.temoignage{border-left:0;border-radius:12px;padding:32px;background:#1C1C1C}
.temoignage figcaption{display:flex;align-items:center;gap:12px;margin-top:24px}
.temoignage .initiales{width:40px;height:40px;border-radius:50%;background:var(--edf-green);color:#000;font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
.temoignage .qui span{display:block;font-weight:400;color:#B8C4BF}
/* Liens : soulignés seulement au survol */
a, .v32 a, .v32 .ext{text-decoration:none}
a:hover, .v32 a:hover{text-decoration:underline;text-underline-offset:3px}
.btn:hover, .v32 .btn:hover, .v32 .card:hover, .carte-projet a:hover{text-decoration:none}
/* Fiches : « Le résultat » en cartes (Rubens, 15/10) */
.resultat-cartes, .prose .resultat-cartes{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.resultat-cartes li, .prose .resultat-cartes li{margin:0;background:#F5F5F5;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:8px}
.resultat-cartes b{font-size:18px;line-height:1.3;color:var(--edf-black)}
.resultat-cartes span{font-size:16px;color:var(--edf-gray-text)}
@media (max-width:700px){.resultat-cartes{grid-template-columns:1fr}}
/* Menu : « Agents IA » en surbrillance (Rubens, 15/10) — texte noir sur vert doux */
.nav a.nav-ia{background:var(--edf-green-soft);color:var(--edf-black);font-weight:600;padding:6px 12px;border-radius:8px}
.nav a.nav-ia:hover{background:var(--edf-green);text-decoration:none}
/* Cartes « Des logiciels en service » sans logo ni animation (Rubens, 15/10) : plus d'aplat vert, un écran dessiné
   animé (aucun nom ni chiffre dedans), et le nom du client au-dessus quand il peut être cité. */
.v32 .card .vis.vis-ecran{aspect-ratio:auto;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:#fff;border-bottom:1px solid var(--line);padding:32px 28px}
.v32 .card .vis-ecran .vis-nom{font-size:clamp(24px,2.4vw,32px);font-weight:700;letter-spacing:-.02em;line-height:1.1;color:#000}
.v32 .card .vis-ecran .ecran{position:relative;width:min(100%,320px);box-sizing:border-box;border:1.5px solid #000;border-radius:8px;padding:30px 16px 16px;display:grid;gap:9px;background:#fff}
.v32 .card .vis-ecran .ecran b{position:absolute;top:10px;left:12px;width:28px;height:6px;background:radial-gradient(circle,#000 2.5px,transparent 3px) 0 0/10px 6px repeat-x}
.v32 .card .vis-ecran .ecran i{display:block;height:8px;border-radius:4px;background:#E6E6E6;transform-origin:left;animation:ecran-ligne 4.8s ease-in-out infinite}
.v32 .card .vis-ecran .ecran i:nth-of-type(1){width:72%}
.v32 .card .vis-ecran .ecran i:nth-of-type(2){width:90%;animation-delay:.25s}
.v32 .card .vis-ecran .ecran i:nth-of-type(3){width:58%;animation-delay:.5s}
.v32 .card .vis-ecran .ecran i.vert{width:40%;height:14px;background:#6EF0BE;animation-delay:.75s}
.v32 .card .vis-ecran .ecran .ok{position:absolute;right:14px;bottom:12px;width:22px;height:22px;border-radius:50%;background:#000;color:#6EF0BE;font-size:12px;font-weight:700;display:grid;place-items:center;animation:ecran-ok 4.8s ease-in-out infinite}
@keyframes ecran-ligne{0%{transform:scaleX(0)}18%,82%{transform:scaleX(1)}100%{transform:scaleX(0)}}
@keyframes ecran-ok{0%,30%{transform:scale(0)}40%,82%{transform:scale(1)}100%{transform:scale(0)}}
.v32 .card .vis-ecran .vis-logo-img{max-height:44px;max-width:60%;width:auto;height:auto}
.v32 .card .vis-ecran .vis-logo-img[data-carre]{max-height:72px}
/* Bloc de rappel de la clôture (Rubens, 15/10) : trois photos qui se chevauchent, titre « On vous rappelle sous 4 h ouvrées » */
.v32 .who2.who2-trio{align-items:center;max-width:520px}
.v32 .who2.who2-trio .who2-photos{display:flex;flex-direction:row;gap:0;flex:none}
.v32 .who2-trio .who2-photos img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid #fff;margin-left:-14px}
.v32 .who2-trio .who2-photos img:first-child{margin-left:0}
.v32 .who2-trio .who2-titre{font-size:18px;color:#000;margin-bottom:2px}
@media (max-width:480px){.v32 .who2.who2-trio{flex-direction:column;align-items:flex-start}}
/* Carte « Autres secteurs » (Rubens, 15/10) : toute la largeur, en fin de rangée des secteurs */
.v32 .scard.scard-autres{grid-column:1/-1;background:#000;border-color:#000;color:#fff}
.v32 .scards-index .scard.scard-autres{grid-column:auto}
.v32 .scards-index .scard.scard-autres .sbody{flex-direction:column;justify-content:flex-end;height:100%;box-sizing:border-box}
.v32 .scard.scard-autres .sbody{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px;padding:24px 28px}
.v32 .scard.scard-autres b{font-size:20px;color:#fff}
.v32 .scard.scard-autres p{margin:0;color:#fff;opacity:.85}
.v32 .scard.scard-autres:hover p{text-decoration:underline}
/* Mur de connecteurs (Interfaçage, Rubens, 15/10) */
.v32 .mur-connecteurs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.v32 .mur-connecteurs li{display:flex;align-items:center;justify-content:center;text-align:center;min-height:72px;padding:14px 16px;background:#F5F5F5;border:1px solid transparent;border-radius:12px;font-size:16px;font-weight:600;color:#000;transition:border-color .2s}
.v32 .mur-connecteurs li:hover{border-color:#000}
@media (max-width:640px){.v32 .mur-connecteurs{grid-template-columns:repeat(2,1fr)}.v32 .mur-connecteurs li{min-height:60px;font-size:15px}}
@media (prefers-reduced-motion:reduce){.v32 .card .vis-ecran .ecran i,.v32 .card .vis-ecran .ecran .ok{animation:none}}
@media (max-width:640px){.v32 .card .vis.vis-ecran{padding:22px 20px}}
