/* Modèle réalisation v2, scopé pour ne pas toucher au reste du thème. */






@font-face{font-family:"muli-fb";src:local("Arial"),local("ArialMT");font-weight:400;size-adjust:102.58%;ascent-override:97.97%;descent-override:24.37%;line-gap-override:0%}
@font-face{font-family:"muli-fb";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:700;size-adjust:98.84%;ascent-override:101.68%;descent-override:25.29%;line-gap-override:0%}
@font-face{font-family:"montserrat-fb";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:600 700;size-adjust:107.05%;ascent-override:90.43%;descent-override:23.45%;line-gap-override:0%}
@font-face{font-family:"montserrat-fb";src:local("Arial Bold"),local("Arial-BoldMT");font-weight:800;size-adjust:111.28%;ascent-override:86.99%;descent-override:22.56%;line-gap-override:0%}
@property --p{syntax:"<percentage>";inherits:true;initial-value:62%}

.rv2{
  --bg:#fff;--ink:#16181b;--ink-2:#53585e;--soft:#eef1f4;--line:#dfe3e7;--gray:#c3c8cd;--orange:#fcb03f;--orange-pale:#ffe2b0;
  --font:"muli","muli-fb",system-ui,sans-serif;--display:"Montserrat","montserrat-fb",system-ui,sans-serif;--site-orange:#e98030;
  --ease:cubic-bezier(.16,1,.3,1);
  --head:68px;--wrap:1320px;--pad:20px;--r:16px;
  color-scheme:light;
}
@media (min-width:600px){.rv2{--pad:32px}}
@media (min-width:1000px){.rv2{--pad:48px}}
.rv2, .rv2 *, .rv2 *::before, .rv2 *::after{box-sizing:border-box}

.rv2{color:var(--ink);font:400 1.0625rem/1.6 var(--font)}
.rv2 ::selection{background:var(--orange);color:var(--ink)}
.rv2 img{display:block;max-width:100%;height:auto}
.rv2 a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
.rv2 a:hover{text-decoration-color:var(--orange);text-decoration-thickness:2px}
.rv2 :focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:4px}
.rv2 h1, .rv2 h2, .rv2 h3, .rv2 .btn, .rv2 .col b, .rv2 .score b, .rv2 .pager strong{font-family:var(--display)}
.rv2 h1, .rv2 h2, .rv2 h3{margin:0;font-weight:800;line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
.rv2 h2{font-size:1.875rem}
.rv2 h3{font-size:1.25rem;font-weight:700;line-height:1.25;letter-spacing:-.01em}
@media (min-width:1000px){.rv2 h2{font-size:2.75rem}.rv2 h3{font-size:1.5rem}}
.rv2 p{margin:0 0 1em;max-width:66ch;text-wrap:pretty}
.rv2 .wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.rv2 .tnum{font-variant-numeric:tabular-nums lining-nums}
.rv2 .skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:10px 14px}
.rv2 .skip:focus{left:8px}

.rv2 .btn{display:inline-flex;align-items:center;gap:.6em;min-height:48px;padding:12px 24px;border:2px solid var(--ink);border-radius:999px;font:600 .9375rem/1.3 var(--display);text-decoration:none;transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),scale .15s var(--ease)}
.rv2 .btn:active{scale:.96}
.rv2 .btn svg{width:1em;height:1em;transition:translate .3s var(--ease)}
.rv2 .btn:hover svg{translate:4px 0}
.rv2 .btn:active svg{translate:7px 0}
.rv2 .btn--primary{background:var(--orange);border-color:var(--orange);color:var(--ink)}
.rv2 .btn--primary:hover{background:var(--ink);border-color:var(--ink);color:var(--orange)}
.rv2 .btn--ghost{background:transparent;color:var(--ink)}
.rv2 .btn--ghost:hover{background:var(--ink);color:#fff}
.rv2 .btn--ink{background:var(--ink);color:#fff}
.rv2 .btn--ink:hover{background:#fff;border-color:#fff;color:var(--ink)}

.rv2 /* header */
.site-head{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;min-height:62px;padding:5px 30px;background:#fff;border-top:3px solid var(--site-orange);border-bottom:1px solid rgba(0,0,0,.1)}
.rv2 .site-head .logo{display:block;width:40px}
.rv2 .site-head .logo svg{display:block;width:40px;height:auto;fill:#000}
.rv2 .baseline{display:grid;font-size:.7rem;line-height:1.2;text-transform:uppercase;color:#000}
.rv2 .baseline .l1{font-weight:700}
.rv2 .top_cart{position:relative;display:grid;place-items:center;width:34px;height:35px;margin-left:auto;border-radius:3px;background:var(--site-orange);color:#fff}
.rv2 .top_cart svg{width:20px;height:20px}
.rv2 .cart_count{position:absolute;top:-8px;right:-8px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#000;color:#fff;font-size:.6875rem;font-weight:700}
.rv2 .site-head .btn{min-height:40px;padding:6px 18px;font-size:.875rem}
.rv2 .menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;min-height:40px;padding:4px 0 4px 8px;font-size:.8rem;text-transform:uppercase}
.rv2 .menu summary::-webkit-details-marker{display:none}
.rv2 .burger{position:relative;width:18px;height:2px;background:#000;box-shadow:0 -6px 0 #000,0 6px 0 #000;transition:background-color .2s}
.rv2 .menu[open] .burger{background:transparent;box-shadow:none}
.rv2 .menu[open] .burger::before, .rv2 .menu[open] .burger::after{content:"";position:absolute;inset:0;background:#000;rotate:45deg}
.rv2 .menu[open] .burger::after{rotate:-45deg}
.rv2 .menu nav{position:absolute;left:0;right:0;top:100%;display:grid;justify-items:center;gap:4px;padding:32px var(--pad) 40px;background:#fff;border-bottom:1px solid rgba(0,0,0,.1)}
.rv2 .menu nav a{padding:10px 16px;font-family:var(--display);font-size:1.125rem;font-weight:600;text-decoration:none}
.rv2 .menu nav a:hover, .rv2 .menu nav a[aria-current]{color:var(--site-orange)}

.rv2 .crumbs ol{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:24px 0 0;list-style:none;font-size:.875rem;color:var(--ink-2)}
.rv2 .crumbs li+li::before{content:"/";margin-right:6px;color:var(--gray)}
.rv2 .crumbs a{text-decoration:none}
.rv2 .crumbs a:hover{text-decoration:underline}

.rv2 /* hero */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center;padding:40px var(--pad) 96px}
.rv2 .hero h1{display:flex;flex-direction:column;gap:20px}
.rv2 .hero__name{font-size:4.5rem;font-weight:800;letter-spacing:-.035em;line-height:1}
.rv2 .hero__sub{font-size:1.25rem;font-weight:600;letter-spacing:-.01em;line-height:1.4;max-width:28ch}
.rv2 .hero__lead{margin:24px 0 0;font-size:1.125rem;color:var(--ink-2);max-width:44ch}
.rv2 .hero__lead strong{color:var(--ink);font-weight:650;background:linear-gradient(var(--orange),var(--orange)) 0 88%/100% .38em no-repeat}
.rv2 .hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.rv2 .spec{display:grid;grid-template-columns:repeat(2,auto);justify-content:start;gap:0 32px;margin:40px 0 0;padding-top:16px;border-top:2px solid var(--ink);font-size:.9375rem}
.rv2 .spec div{display:grid;gap:2px}
.rv2 .spec dt{color:var(--ink-2);font-size:.8125rem}
.rv2 .spec dd{margin:0;font-weight:650}

.rv2 /* before / after viewer */
.ba{margin:0;--p:42%;animation:wipe 1.8s var(--ease) .3s both,hint 1.4s ease-in-out 2.4s 2}
.rv2 .ba.is-live{animation:none}
@keyframes wipe{from{--p:100%}}
@keyframes hint{0%,100%{--p:42%}30%{--p:35%}65%{--p:48%}}
.rv2 .ba__win{border-radius:var(--r);overflow:hidden;background:var(--ink)}
.rv2 .ba__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;color:#fff;font-size:.8125rem;font-weight:600}
.rv2 .ba__bar span+span{color:#c3c8cd;font-weight:500}
.rv2 .ba__view{position:relative;aspect-ratio:3/2;background:#fff}
.rv2 .ba__after{width:100%;height:100%;object-fit:cover}
.rv2 .ba__before{position:absolute;inset:0;background:#e9ecef;clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.rv2 .ba__tag{position:absolute;top:14px;padding:6px 14px;border-radius:999px;font-size:.8125rem;font-weight:700;line-height:1.3}
.rv2 .ba__tag--after{right:14px;background:var(--orange);color:var(--ink)}
.rv2 .ba__tag--before{left:14px;background:#fff;color:var(--ink)}
.rv2 .score{position:absolute;bottom:14px;display:grid;padding:10px 14px;border-radius:12px;background:#fff;color:var(--ink);line-height:1.2;font-variant-numeric:tabular-nums}
.rv2 .score small{font-size:.75rem;color:var(--ink-2)}
.rv2 .score b{font-size:1.625rem;font-weight:800;font-stretch:80%}
.rv2 .score--after{right:14px;background:var(--ink);color:#fff}
.rv2 .score--after small{color:#c3c8cd}
.rv2 .score--after b{color:var(--orange)}
.rv2 .score--before{left:14px}
.rv2 .delta{position:absolute;top:0;right:12px;translate:0 -60%;display:flex;align-items:center;gap:4px;padding:5px 11px 5px 8px;border-radius:999px;background:#15803d;box-shadow:0 0 0 3px var(--ink);color:#fff;font:800 .9375rem/1 var(--display);font-style:normal;font-variant-numeric:tabular-nums;animation:pop .7s var(--ease) 2.2s both}
.rv2 .delta svg{width:14px;height:14px}
@keyframes pop{from{scale:.4;opacity:0}}
.rv2 .ba__handle{position:absolute;top:0;bottom:0;left:var(--p);width:3px;margin-left:-1.5px;background:var(--orange);pointer-events:none}
.rv2 .ba__handle svg{position:absolute;top:50%;left:50%;width:48px;height:48px;translate:-50% -50%;border-radius:50%;background:var(--orange);transition:scale .3s var(--ease)}
.rv2 .ba__range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.rv2 .ba__range:hover ~ .ba__handle svg{scale:1.1}
.rv2 .ba__range:active ~ .ba__handle svg{scale:.94}
.rv2 .ba__range:focus-visible ~ .ba__handle svg{outline:3px solid var(--ink);outline-offset:3px}
.rv2 .ba figcaption{margin-top:12px;font-size:.875rem;color:var(--ink-2)}

.rv2 /* sections */
.section{padding:120px 0}
.rv2 .section--rule{position:relative}
.rv2 .section--rule::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line);transform-origin:left}
.rv2 .section__head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px 56px;align-items:end;margin-bottom:48px}
.rv2 .section__head p{margin:0;font-size:1.125rem;color:var(--ink-2)}

.rv2 /* impact */
.impact__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}
.rv2 .panel{border-radius:var(--r);padding:40px}
.rv2 .panel h3{max-width:20ch}
.rv2 .panel p{margin:16px 0 0;font-size:.9375rem}
.rv2 .panel--conv{grid-column:1/6;grid-row:span 2;background:var(--orange);display:flex;flex-direction:column}
.rv2 .panel--seo{grid-column:6/13;background:var(--soft)}
.rv2 .panel--speed{grid-column:6/13;background:var(--ink);color:#fff}
.rv2 .panel--speed p{color:#c3c8cd}
@media (min-width:1000px){.rv2 .impact__grid:not(:has(.panel--conv)) .panel--seo{grid-column:1/7}.rv2 .impact__grid:not(:has(.panel--conv)) .panel--seo+.panel--speed{grid-column:7/13}}
.rv2 .cols{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:20px;min-height:300px;padding-top:40px}
.rv2 .col{display:flex;flex-direction:column;justify-content:flex-end;gap:8px}
.rv2 .col b{font-size:2.25rem;font-weight:800;font-stretch:80%;font-variant-numeric:tabular-nums;line-height:1}
.rv2 .col i{display:block;flex:none;height:calc((100% - 96px) * var(--h));border-radius:12px 12px 0 0;background:var(--ink);transform-origin:bottom}
.rv2 .col--before i{background:var(--orange-pale)}
.rv2 .col span{font-size:.875rem;font-weight:600;padding-top:10px;border-top:2px solid var(--ink)}
.rv2 .chart{position:relative;margin-top:32px}
.rv2 .curve{display:block;width:100%;height:180px;overflow:visible}
.rv2 .chart__v{position:absolute;top:calc(35% - 34px);left:0;padding:2px 8px;border-radius:6px;background:#fff;font:700 .8125rem/1.4 var(--display);font-variant-numeric:tabular-nums}
.rv2 .chart__v--end{top:calc(10.3% - 34px);left:auto;right:0;background:var(--ink);color:var(--orange);transition:opacity .4s var(--ease) 1.8s,translate .4s var(--ease) 1.8s}
.rv2 .chart__dot{position:absolute;top:10.3%;right:0;width:14px;height:14px;margin:-7px -7px 0 0;border:3px solid var(--ink);border-radius:50%;background:var(--orange);transition:opacity .3s var(--ease) 1.9s}
.rv2 .chart__dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--ink);animation:ping 1.8s var(--ease) 2.4s 3}
@keyframes ping{to{scale:2.6;opacity:0}}
.js .rv2 .panel:not(.in) .chart__v--end{opacity:0;translate:0 8px}
.js .rv2 .panel:not(.in) .chart__dot{opacity:0}
.rv2 .curve .area{fill:var(--orange)}
.rv2 .curve .line{fill:none;stroke:var(--ink);stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.rv2 .curve .base{stroke:var(--ink-2);stroke-width:1.5;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}
.rv2 .months{display:flex;justify-content:space-between;margin:10px 0 0;padding:0;list-style:none;font-size:.75rem;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.rv2 .legend{display:flex;gap:20px;margin:20px 0 0;padding:0;list-style:none;font-size:.8125rem;color:#c3c8cd}
.rv2 .legend li{display:flex;align-items:center;gap:8px}
.rv2 .legend li::before{content:"";width:14px;height:14px;border-radius:4px;background:var(--gray)}
.rv2 .legend li+li::before{background:var(--orange)}
.rv2 .bars{display:grid;gap:20px;margin:24px 0 0}
.rv2 .bars div{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:4px 20px;align-items:center}
.rv2 .bars dt{grid-row:span 2;font-size:.875rem;font-weight:600}
.rv2 .bars dd{margin:0;display:flex;align-items:center;gap:10px;font-size:.875rem;font-weight:700;font-variant-numeric:tabular-nums}
.rv2 .bars dd i{display:block;width:calc(var(--w) * .78);min-width:6px;height:12px;border-radius:6px;background:var(--gray);transform-origin:left}
.rv2 .bars dd + dd i{background:var(--orange)}
.rv2 .note{margin:24px 0 0;font-size:.8125rem;color:var(--ink-2)}

.js .rv2 .panel:not(.in) .col i{scale:1 0}
.js .rv2 .panel:not(.in) .bars dd i{scale:0 1}
.rv2 .curve .area{transform-box:fill-box;transform-origin:bottom;transition:scale 1.1s var(--ease) .3s}
.rv2 .curve .line{clip-path:inset(0 0 0 0);transition:clip-path 1.4s var(--ease) .5s}
.rv2 .curve .base, .rv2 .chart__v--start{transition:opacity .5s var(--ease)}
.rv2 .months li{transition:opacity .4s var(--ease),translate .4s var(--ease)}
.rv2 .months li:nth-child(1){transition-delay:.5s}.rv2 .months li:nth-child(2){transition-delay:.7s}.rv2 .months li:nth-child(3){transition-delay:.9s}.rv2 .months li:nth-child(4){transition-delay:1.1s}.rv2 .months li:nth-child(5){transition-delay:1.3s}.rv2 .months li:nth-child(6){transition-delay:1.5s}.rv2 .months li:nth-child(7){transition-delay:1.7s}
.js .rv2 .panel:not(.in) .curve .area{scale:1 0}
.js .rv2 .panel:not(.in) .curve .line{clip-path:inset(0 100% 0 0)}
.js .rv2 .panel:not(.in) .curve .base, .js .rv2 .panel:not(.in) .chart__v--start{opacity:0}
.js .rv2 .panel:not(.in) .months li{opacity:0;translate:0 6px}
.js .rv2 .panel:not(.in) .col b, .js .rv2 .panel:not(.in) .bars dd span{opacity:0}
.rv2 .col i, .rv2 .bars dd i{transition:scale 1.2s var(--ease)}
.rv2 .bars dd + dd i{transition-delay:.15s}
.rv2 .col + .col i{transition-delay:.2s}
.rv2 .col b, .rv2 .bars dd span{transition:opacity .5s var(--ease) .7s}

.rv2 /* work -> effect */
.work{margin:0;padding:0;list-style:none;border-top:2px solid var(--ink)}
.rv2 .work li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);gap:16px 40px;align-items:start;padding:32px 0;border-bottom:1px solid var(--line)}
.rv2 .work p{margin:0;color:var(--ink-2)}
.rv2 .work .fx{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:12px;background:var(--soft);color:var(--ink);font-weight:600;font-size:.9375rem;line-height:1.45}
.rv2 .fx svg{flex:none;width:20px;height:20px;margin-top:1px;border-radius:50%;background:var(--orange)}

.rv2 /* delivered screens */
.device{max-width:1040px;margin:0 auto}
.rv2 .laptop__screen{position:relative;padding:14px 14px 18px;border-radius:20px 20px 0 0;background:var(--ink)}
.rv2 .track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;aspect-ratio:16/10;border-radius:6px;background:#fff}
.rv2 .track::-webkit-scrollbar{display:none}
.rv2 .slide{flex:0 0 100%;scroll-snap-align:start}
.rv2 .slide__scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--orange) transparent}
.rv2 .slide__scroll img{display:block;width:100%;height:auto}
.rv2 .slide__scroll:focus-visible{outline:3px solid var(--orange);outline-offset:-3px}
.rv2 .count{position:absolute;top:28px;right:30px;padding:6px 12px;border-radius:999px;background:var(--ink);color:#fff;font-size:.8125rem;font-variant-numeric:tabular-nums}
.rv2 .count b{color:var(--orange)}
.rv2 .scroll-hint{position:absolute;bottom:34px;left:50%;translate:-50% 0;padding:6px 14px;border-radius:999px;background:var(--orange);font-size:.8125rem;font-weight:700;pointer-events:none;animation:nudge 1.6s ease-in-out 1s 5;transition:opacity .3s}
.rv2 .device.scrolled .scroll-hint{opacity:0;animation:none}
@keyframes nudge{50%{translate:-50% 6px}}
.rv2 .laptop__base{position:relative;height:18px;margin:0 -7%;border-radius:0 0 18px 18px;background:#c3c8cd}
.rv2 .laptop__base::before{content:"";position:absolute;top:0;left:50%;width:16%;height:7px;translate:-50% 0;border-radius:0 0 10px 10px;background:#a7adb3}
.rv2 .device__nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:24px;align-items:center;margin-top:32px}
.rv2 .arrow{display:grid;place-items:center;width:52px;height:52px;border:2px solid var(--ink);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer;transition:background-color .25s var(--ease),color .25s var(--ease),scale .15s var(--ease)}
.rv2 .arrow:hover{background:var(--ink);color:var(--orange)}
.rv2 .arrow:active{scale:.9}
.rv2 .arrow svg{width:22px;height:22px;transition:translate .3s var(--ease)}
.rv2 .arrow[data-dir="-1"]:hover svg{translate:-3px 0}
.rv2 .arrow[data-dir="1"]:hover svg{translate:3px 0}
.rv2 .caps{margin:0;padding:0;list-style:none;text-align:center}
.rv2 .caps h3{font-size:1.25rem}
.rv2 .caps p{margin:6px 0 0;font-size:.9375rem;color:var(--ink-2)}

.rv2 /* client + faq */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 56px}
.rv2 .values{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 0;padding:0;list-style:none}
.rv2 .values li{padding:8px 16px;border-radius:999px;background:var(--soft);font-size:.875rem;font-weight:600}
.rv2 .client__text p:first-child{font-size:1.25rem;line-height:1.5}
.rv2 .faq details{border-bottom:1px solid var(--line)}
.rv2 .faq details:first-child{border-top:2px solid var(--ink)}
.rv2 .faq summary{display:flex;justify-content:space-between;gap:20px;padding:20px 0;cursor:pointer;list-style:none;font-weight:650;font-size:1.1875rem;font-stretch:92%;line-height:1.35}
.rv2 .faq summary::-webkit-details-marker{display:none}
.rv2 .faq summary::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:var(--soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M9 14h10M14 9v10' stroke='%2316181b' stroke-width='2'/%3E%3C/svg%3E") center/100% no-repeat;transition:rotate .3s var(--ease),background-color .3s var(--ease)}
.rv2 .faq details[open] summary::after{rotate:45deg;background-color:var(--orange)}
.rv2 .faq details p{padding-bottom:20px;color:var(--ink-2)}

.rv2 /* contact */
.contact{padding:0 0 120px}
.rv2 .contact__box{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:end;padding:72px 64px;border-radius:24px;background:var(--orange)}
.rv2 .gains{display:grid;gap:10px;margin:0 0 32px;padding:0;list-style:none}
.rv2 .gains li{display:flex;align-items:center;gap:18px;padding:16px 20px;border-radius:14px;background:var(--ink);color:#fff;transition:translate .7s var(--ease),opacity .7s var(--ease)}
.rv2 .gains li:nth-child(2){transition-delay:.12s}
.rv2 .gains li:nth-child(3){transition-delay:.24s}
.js .rv2 .gains:not(.in) li{opacity:0;translate:0 24px}
.rv2 .gains b{flex:none;min-width:4.6ch;font:800 2.25rem/1 var(--display);color:var(--orange);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.rv2 .gains span{font-size:.9375rem;line-height:1.35}
.rv2 .contact h2{position:relative;font-size:2.75rem;font-stretch:72%;letter-spacing:-.035em;line-height:.95;max-width:14ch;font-variant-ligatures:no-common-ligatures}
@media (min-width:1000px){.rv2 .contact h2{font-size:5rem}}
.rv2 .contact__text p{position:relative;font-size:1.1875rem;max-width:40ch;margin-top:24px}
.rv2 .contact__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.rv2 .contact dl{position:relative;display:grid;grid-template-columns:auto 1fr;margin:0;border-top:2px solid var(--ink)}
.rv2 .contact dt, .rv2 .contact dd{margin:0;padding:12px 0;border-bottom:1px solid var(--ink)}
.rv2 .contact dt{padding-right:24px;font-size:.875rem}
.rv2 .contact dd{font-weight:650;font-variant-numeric:tabular-nums}
.rv2 .contact .btn--ghost:hover{background:var(--ink);color:var(--orange)}

.rv2 /* more + pager */
.more h2{font-size:1.25rem;font-stretch:85%;line-height:1.3}
.rv2 .more__links{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0;padding:0;list-style:none;font-weight:600}
.rv2 .more__links a{display:inline-block;padding:8px 16px;border-radius:999px;background:var(--soft);text-decoration:none;transition:background-color .2s var(--ease),scale .15s var(--ease)}
.rv2 .more__links a:hover{background:var(--orange)}
.rv2 .more__links a:active{scale:.95}
.rv2 .pager{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:64px 0 120px}
.rv2 .pager a{display:flex;flex-direction:column;gap:6px;padding:28px 32px;border-radius:var(--r);background:var(--soft);text-decoration:none;transition:background-color .25s var(--ease),scale .15s var(--ease)}
.rv2 .pager a + a{text-align:right;align-items:flex-end}
.rv2 .pager a:hover{background:var(--orange)}
.rv2 .pager a:active{scale:.98}
.rv2 .pager small{font-size:.875rem;color:var(--ink-2)}
.rv2 .pager strong{font-size:2rem;font-stretch:75%;font-weight:780;letter-spacing:-.03em;line-height:1.05;transition:translate .4s var(--ease)}
.rv2 .pager a[rel=prev]:hover strong{translate:-6px 0}
.rv2 .pager a[rel=next]:hover strong{translate:6px 0}

.rv2 /* footer */
.site-foot{color:#000}
.rv2 .site-foot a{color:inherit;text-decoration:none}
.rv2 .site-foot a:hover{text-decoration:underline}
.rv2 .pieddepage1{padding:90px var(--pad);background:#f8f8f8;text-align:center}
.rv2 .pieddepage1 > a svg{width:70px;height:auto;fill:#000}
.rv2 .social{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 32px;margin:32px 0 0;padding:0;list-style:none;text-transform:uppercase}
.rv2 .band, .rv2 .pieddepage3{background:var(--site-orange)}
.rv2 .pieddepage2{display:flex;flex-wrap:wrap;justify-content:center;gap:32px 96px;max-width:1280px;margin:0 auto;padding:56px var(--pad)}
.rv2 .pieddepage2 h2{margin-bottom:12px;font-size:1.3rem;font-weight:700;text-transform:uppercase;letter-spacing:0}
.rv2 .pieddepage2 p{display:flex;align-items:center;gap:10px;margin:6px 0}
.rv2 .pieddepage2 svg{flex:none;width:18px;height:18px}
.rv2 .stars{display:flex;gap:4px;margin:8px 0}
.rv2 .stars svg{width:22px;height:22px}
.rv2 .pieddepage2 small{font-size:.8rem}
.rv2 .pieddepage3{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;padding:16px var(--pad) 24px;border-top:1px solid rgba(0,0,0,.1);font-size:.8rem;color:rgba(0,0,0,.65)}
.rv2 .pieddepage3 p{margin:0}
.rv2 .pieddepage3 ul{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;list-style:none}

@media (max-width:999px){
  .rv2 .site-head{padding:5px 16px;gap:12px}
  .rv2 .baseline{display:none}
  .rv2 .site-head .btn{padding:6px 14px}
  .rv2 .hero, .rv2 .section__head, .rv2 .split, .rv2 .contact__box{grid-template-columns:minmax(0,1fr)}
  .rv2 .hero{gap:40px;padding:28px var(--pad) 72px}
  .rv2 .hero__name{font-size:3.75rem}
  .rv2 .hero__sub{font-size:1.25rem}
  .rv2 .spec{gap:12px 32px}
  .rv2 .score{bottom:10px;padding:8px 10px}
  .rv2 .score--after{right:10px}
  .rv2 .score--before{left:10px}
  .rv2 .score b{font-size:1.25rem}
  .rv2 .score small{font-size:.6875rem}
  .rv2 .ba__tag{top:10px;padding:6px 12px}
  .rv2 .ba__tag--after{right:10px}
  .rv2 .ba__tag--before{left:10px}
  .rv2 .section{padding:72px 0}
  .rv2 .impact__grid{grid-template-columns:minmax(0,1fr)}
  .rv2 .panel--conv, .rv2 .panel--seo, .rv2 .panel--speed{grid-column:auto;grid-row:auto}
  .rv2 .panel{padding:28px 24px}
  .rv2 .cols{height:260px}
  .rv2 .bars div{grid-template-columns:minmax(0,1fr)}
  .rv2 .bars dt{grid-row:auto}
  .rv2 .work li{grid-template-columns:minmax(0,1fr);padding:28px 0}
  .rv2 .laptop__screen{padding:8px 8px 10px;border-radius:12px 12px 0 0}
  .rv2 .track{aspect-ratio:3/4}
  .rv2 .count{top:16px;right:16px}
  .rv2 .laptop__base{height:12px;margin:0 -4%}
  .rv2 .device__nav{gap:12px}
  .rv2 .arrow{width:44px;height:44px}
  .rv2 .contact{padding:0 0 72px}
  .rv2 .contact__box{padding:48px 24px;gap:32px}
  .rv2 .gains b{font-size:1.75rem}
  .rv2 .pager{margin:48px 0 72px}
  .rv2 .pieddepage1{padding:56px var(--pad)}
}
@media (max-width:560px){
  .rv2 .pager{grid-template-columns:minmax(0,1fr)}
  .rv2 .pager a + a{text-align:left;align-items:flex-start}
  .rv2 .pager strong{font-size:1.5rem}
}
/* off-screen sections skip rendering until they come near the viewport */
.rv2 .section, .rv2 .contact, .rv2 .more{content-visibility:auto;contain-intrinsic-size:auto 900px}

/* entrances: hidden only while the observer waits, never above the fold, never the LCP */
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  @keyframes rv2-rise{from{opacity:0;translate:0 28px}}
  @keyframes rv2-rise-s{from{opacity:0;translate:0 -6px}}
  @keyframes rv2-slide{from{opacity:0;translate:-24px 0}}
  @keyframes rv2-chip{from{opacity:0;scale:.7}}
  @keyframes rv2-power{from{opacity:0}}
  @keyframes rv2-unmask{from{clip-path:inset(-.2em -.2em 100% -.2em);translate:0 .45em}to{clip-path:inset(-.2em -.2em -.3em -.2em)}}
  @keyframes rv2-open{from{opacity:0;clip-path:inset(9% 5% round 24px)}to{clip-path:inset(0 round 24px)}}

  .rv2 .hero__cta{animation:rv2-rise .8s var(--ease) .15s backwards}
  .rv2 .spec{animation:rv2-rise .8s var(--ease) .3s backwards}

  .rv2 .section--rule::before{transition:scale 1.4s var(--ease)}
  .js .rv2 .section--rule:not(.seen)::before{scale:0 1}

  .js .rv2 .section__head:not(.seen) > *,
  .js .rv2 .panel:not(.seen),
  .js .rv2 .work li:not(.seen) > *,
  .js .rv2 .device:not(.seen) :is(.laptop,.device__nav),
  .js .rv2 .split:not(.seen) :is(h2,.values li,.client__text > *,details),
  .js .rv2 .contact__box:not(.seen),
  .js .rv2 .more:not(.seen) :is(h2,li,.pager a){opacity:0}

  .rv2 .section__head.seen h2, .rv2 .split.seen h2{animation:rv2-unmask .9s var(--ease) backwards}
  .rv2 .section__head.seen p{animation:rv2-rise .8s var(--ease) .12s backwards}

  .rv2 .panel.seen{animation:rv2-rise .8s var(--ease) backwards}
  .rv2 .panel--seo.seen{animation-delay:.1s}

  .rv2 .work li.seen > h3{animation:rv2-rise .7s var(--ease) backwards}
  .rv2 .work li.seen > p{animation:rv2-rise .7s var(--ease) .08s backwards}
  .rv2 .work li.seen > .fx{animation:rv2-slide .7s var(--ease) .2s backwards}
  .rv2 .work li.seen .fx svg{animation:rv2-chip .5s var(--ease) .45s backwards}

  .rv2 .device.seen .laptop{animation:rv2-rise .9s var(--ease) backwards}
  .rv2 .device.seen .track{animation:rv2-power .7s ease-out .4s backwards}
  .rv2 .device.seen .device__nav{animation:rv2-rise .7s var(--ease) .2s backwards}

  .rv2 .split.seen .values li{animation:rv2-chip .5s var(--ease) .25s backwards}
  .rv2 .split.seen .values li:nth-child(2){animation-delay:.32s}
  .rv2 .split.seen .values li:nth-child(3){animation-delay:.39s}
  .rv2 .split.seen .values li:nth-child(n+4){animation-delay:.46s}
  .rv2 .split.seen .client__text > *{animation:rv2-rise .8s var(--ease) .1s backwards}
  .rv2 .split.seen .client__text > * + *{animation-delay:.2s}
  .rv2 .split.seen details{animation:rv2-rise .7s var(--ease) .1s backwards}
  .rv2 .split.seen details:nth-child(2){animation-delay:.18s}
  .rv2 .split.seen details:nth-child(n+3){animation-delay:.26s}
  .rv2 .faq details[open] p{animation:rv2-rise-s .4s var(--ease)}

  .rv2 .contact__box.seen{animation:rv2-open 1s var(--ease) backwards}
  .rv2 .contact__box.seen .contact__text > *{animation:rv2-rise .8s var(--ease) .2s backwards}
  .rv2 .contact__box.seen .contact__text > :nth-child(2){animation-delay:.3s}
  .rv2 .contact__box.seen .contact__text > :nth-child(3){animation-delay:.4s}

  .rv2 .more.seen :is(h2,li){animation:rv2-rise .6s var(--ease) backwards}
  .rv2 .more.seen li:nth-child(2){animation-delay:.05s}
  .rv2 .more.seen li:nth-child(3){animation-delay:.1s}
  .rv2 .more.seen li:nth-child(4){animation-delay:.15s}
  .rv2 .more.seen .pager a{animation:rv2-rise .7s var(--ease) .2s backwards}
  .rv2 .more.seen .pager a + a{animation-delay:.28s}
}
@media (prefers-reduced-motion:reduce){
  .rv2 *, .rv2 *::before, .rv2 *::after{animation:none!important;transition:none!important}
}
