/* BG Lab S7 studies: one point of contact / contract architecture / connected sides.
   All compositions settle at --cv:1 without JavaScript or with reduced motion. */
.cv-section{--cv:1;--cv-ink:#17213c;--cv-blue:#294bd8;--cv-art-scale:1;isolation:isolate;overflow:clip}
.cv-section>.scene-sticky,.motion-ready:not(.motion-reduced) .cv-section>.scene-sticky{display:flex;align-items:center;min-height:740px;padding-block:65px;isolation:isolate}
.motion-ready:not(.motion-reduced) .cv-section{--cv:var(--p,0)}
.motion-ready:not(.motion-reduced) .cv-section:not(.scene-flow)>.scene-sticky{min-height:0;padding-block:40px}
.cv-section .cinema-content{position:relative;z-index:2;width:100%;text-align:left;min-width:0}
.cv-section .cv-copy{position:relative;z-index:3;min-width:0}
.cv-section .cv-kicker{display:block;font-size:13px;line-height:1.45;letter-spacing:0;font-weight:450;margin-bottom:26px}
.cv-section .cinema-content h2,.motion-ready:not(.motion-reduced) .cv-section .cinema-content h2{font-size:clamp(44px,5.2vw,72px);line-height:1.03;letter-spacing:-.055em;font-weight:550;margin:0;text-wrap:balance}
.cv-section .cv-copy>p{font-size:17px;line-height:1.65;max-width:400px;margin:28px 0 30px}
.cv-section .cv-cta{font-size:14px;min-height:55px;gap:25px;background:#eef2ff;color:#172a68;border:1px solid #fff5;box-shadow:0 8px 25px #0000000d}
.cv-section .cv-cta:hover{background:#fff;color:#163ccb;transform:translateY(-2px)}
.cv-section .cv-cta:focus-visible,.cv-section .cv-secondary:focus-visible{outline:3px solid #8dbaff;outline-offset:6px}
.cv-section .cv-footnote{display:block;font-size:12px;line-height:1.5;margin-top:18px;color:#aab9da}
.cv-section .cv-art{position:relative;min-width:0;height:440px;perspective:1100px}
.cv-section .cv-art-inner{width:560px;height:440px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(var(--cv-art-scale));transform-style:preserve-3d}
.cv-section .cv-atmosphere{position:absolute;inset:0;z-index:0;pointer-events:none}

/* I. Dispatcher: a cobalt working sheet gathers the context in a single view. */
.cv-v1{background:#111c37;color:#f5f7ff}
.cv-v1 .cv-atmosphere{background:radial-gradient(ellipse at 82% 36%,#3655a842,transparent 56%),linear-gradient(115deg,#101b34 15%,#182b54 100%)}
.cv-v1 .cv-dispatch-layout{display:grid;grid-template-columns:1fr 1.02fr;gap:30px;align-items:center}
.cv-v1 .cv-kicker{color:#abc0f3}
.cv-v1 .cv-copy>p{color:#b9c7e1}
.cv-v1 .cv-desk-floor{position:absolute;left:40px;right:5px;bottom:5px;height:130px;border-radius:50%;background:radial-gradient(ellipse,#6684d931,transparent 70%);transform:rotate(-7deg);filter:blur(5px)}
.cv-v1 .cv-desk-arc{position:absolute;left:61px;top:30px;width:440px;height:345px;border:1px solid #9ebcfe3b;border-left-color:#9ebcfe0c;border-radius:50%;transform:rotate(-29deg);box-shadow:inset 0 0 80px #6b97ff08}
.cv-v1 .cv-routing{position:absolute;inset:0;width:100%;height:100%;stroke:#7e9cdd;stroke-width:1;opacity:.52;stroke-dasharray:7 5}
.cv-v1 .cv-context-sheet{position:absolute;width:262px;height:313px;left:151px;top:62px;padding:25px 27px;background:linear-gradient(135deg,#466adff2,#2342b4f5 62%,#1b3699);border:1px solid #86a6ff90;border-radius:11px 11px 27px 11px;box-shadow:inset 1px 1px 0 #cad8ff7a,9px 14px 0 -7px #172c69,16px 22px 0 -12px #647abe88,0 28px 55px #02081b66;transform:translate3d(calc((1 - var(--cv))*24px),calc((1 - var(--cv))*28px),40px) rotateY(calc(-18deg + var(--cv)*13deg)) rotateZ(calc(-8deg + var(--cv)*4deg));transform-style:preserve-3d}
.cv-v1 .cv-context-top{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:550;color:#dce5ff}
.cv-v1 .cv-sheet-mark{width:34px;height:34px;border:1px solid #e1eaff50;border-radius:50%;display:grid;place-items:center}
.cv-v1 .cv-sheet-mark .icon{width:17px;height:17px}
.cv-v1 .cv-context-sheet>strong{display:block;font-size:28px;line-height:1.15;letter-spacing:-1px;font-weight:500;margin-top:28px}
.cv-v1 .cv-sheet-rules{display:grid;gap:8px;margin-top:26px}
.cv-v1 .cv-sheet-rules i{height:2px;width:100%;background:#9eb4ff52}
.cv-v1 .cv-sheet-rules i:nth-child(2){width:77%}
.cv-v1 .cv-sheet-rules i:nth-child(3){width:44%}
.cv-v1 .cv-context-bottom{margin-top:27px;display:flex;align-items:center;gap:8px;font-size:10px;color:#e0e8ff}
.cv-v1 .cv-context-dot{width:5px;height:5px;background:#d7e3ff;border-radius:50%;box-shadow:0 0 9px #afc7ff}
.cv-v1 .cv-desk-slip{position:absolute;display:flex;align-items:center;gap:12px;font-size:12px;line-height:1.4;letter-spacing:-.1px;color:#d7e3ff;padding:16px 18px;border-radius:9px;background:linear-gradient(120deg,#d2e1ff16,#5579c515);border:1px solid #a4baff3b;box-shadow:inset 0 1px 0 #dde8ff14,0 13px 23px #07102222;backdrop-filter:blur(9px)}
.cv-v1 .cv-desk-slip .icon{width:22px;height:22px;color:#b6cbff;stroke-width:1.2}
.cv-v1 .cv-slip-company{left:-2px;top:74px;transform:translate(calc((1 - var(--cv))*-43px),calc((1 - var(--cv))*-12px)) rotate(-9deg)}
.cv-v1 .cv-slip-bank{right:-13px;top:56px;transform:translate(calc((1 - var(--cv))*40px),calc((1 - var(--cv))*-26px)) rotate(10deg)}
.cv-v1 .cv-slip-contract{left:3px;bottom:33px;transform:translate(calc((1 - var(--cv))*-33px),calc((1 - var(--cv))*37px)) rotate(-7deg)}
.cv-v1 .cv-slip-date{right:-9px;bottom:54px;transform:translate(calc((1 - var(--cv))*36px),calc((1 - var(--cv))*39px)) rotate(8deg)}
.cv-v1 .cv-desk-contact{position:absolute;left:185px;bottom:5px;z-index:5;display:flex;align-items:center;gap:9px;font-size:11px;background:#edf3ff;color:#173780;border:1px solid #c0d1fd;border-radius:30px;padding:12px 17px;box-shadow:0 8px 26px #03081c40;transform:translateY(calc((1 - var(--cv))*25px))}
.cv-v1 .cv-desk-contact .icon{width:17px;height:17px}

/* II. Architecture: three accountable layers align around a cobalt spine. */
.cv-v2{background:#182642;color:#f4f7ff}
.cv-v2 .cv-atmosphere{background:radial-gradient(ellipse at 50% 46%,#719ee92d,transparent 53%),linear-gradient(0deg,#14233f,#1d2d49)}
.cv-v2 .cv-architecture-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0;max-width:1300px}
.cv-v2 .cv-architecture-heading{text-align:center;position:relative;z-index:3}
.cv-v2 .cv-kicker{color:#b9cbea;margin-bottom:17px}
.cv-v2 .cinema-content h2,.motion-ready:not(.motion-reduced) .cv-v2 .cinema-content h2{font-size:clamp(44px,5.8vw,78px);font-weight:450;letter-spacing:-.062em}
.cv-v2 .cv-architecture-art{height:340px;margin:12px 0 36px;--cv-art-scale:.82}
.cv-v2 .cv-architecture-art .cv-art-inner{width:640px;height:300px;top:42%}
.cv-v2 .cv-architecture-shadow{position:absolute;left:87px;right:35px;bottom:12px;height:65px;border-radius:50%;background:#07132870;filter:blur(18px);transform:rotate(-9deg)}
.cv-v2 .cv-contract-model{position:absolute;left:71px;top:68px;width:500px;height:225px;transform-style:preserve-3d;transform:perspective(1100px) rotateX(calc(56deg - var(--cv)*9deg)) rotateZ(calc(-26deg + var(--cv)*5deg));transform-origin:50% 70%}
.cv-v2 .cv-plane{position:absolute;inset:0;border:1px solid #cadbfb70;border-radius:14px;backdrop-filter:blur(3px);background:linear-gradient(115deg,#ecf4ff30,#9fc5ff08 55%,#a8c0e22c);box-shadow:inset 0 1px 0 #f3f8ff80,0 6px 0 -4px #adc9ef80,0 18px 32px #0310262b;transform-style:preserve-3d;padding:20px 25px;color:#e2edff}
.cv-v2 .cv-plane>span{display:block;font-size:15px;letter-spacing:.3px}
.cv-v2 .cv-plane-base{transform:translate3d(calc((1 - var(--cv))*-54px),30px,-44px)}
.cv-v2 .cv-plane-middle{transform:translate3d(0,calc((1 - var(--cv))*-28px),calc(18px + (1 - var(--cv))*30px));border-color:#96b8f0a0}
.cv-v2 .cv-plane-top{transform:translate3d(calc((1 - var(--cv))*44px),-38px,calc(80px + (1 - var(--cv))*56px));background:linear-gradient(130deg,#ddebff4d,#7596c319 65%,#96b5e933)}
.cv-v2 .cv-plane-grid{position:absolute;inset:68px 25px 22px;background:repeating-linear-gradient(0deg,transparent,transparent 28px,#b8d1f32e 28px,#b8d1f32e 29px),repeating-linear-gradient(90deg,transparent,transparent 102px,#b8d1f31c 102px,#b8d1f31c 103px)}
.cv-v2 .cv-plane-lines{display:grid;gap:14px;width:48%;margin-top:30px}
.cv-v2 .cv-plane-lines i{display:block;height:3px;background:#d4e4fe55}
.cv-v2 .cv-plane-lines i:nth-child(2){width:76%}
.cv-v2 .cv-plane-lines i:nth-child(3){width:55%}
.cv-v2 .cv-contract-spine{position:absolute;left:312px;top:4px;width:137px;height:232px;border:1px solid #7c9cf0;border-radius:8px;background:linear-gradient(140deg,#4b75e9,#234cba);padding:20px 17px;box-shadow:inset 1px 1px 0 #bfd2ff77,6px 9px 0 -3px #173c95,0 18px 25px #10245566;transform:translateZ(calc(115px + (1 - var(--cv))*38px));color:#fff}
.cv-v2 .cv-contract-spine>span{font-size:18px;letter-spacing:-1px}
.cv-v2 .cv-contract-spine>strong{display:block;font-size:20px;line-height:1.2;letter-spacing:-.5px;font-weight:450;margin-top:40px}
.cv-v2 .cv-contract-spine i{display:block;width:25px;height:4px;border-radius:2px;background:#bfceff;margin-top:32px}
.cv-v2 .cv-model-note{position:absolute;left:15px;bottom:-7px;transform:rotate(-90deg);transform-origin:0 0;font-size:10px;color:#a6bedf;letter-spacing:.3px}
.cv-v2 .cv-architecture-footer{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:45px;width:820px;max-width:100%;min-width:0;margin:0 auto}
.cv-v2 .cv-architecture-footer>p{max-width:440px;font-size:15px;line-height:1.7;color:#bfcde1;margin:0}
.cv-v2 .cv-architecture-footer .cv-cta{flex-shrink:0}

/* III. Connected sides: open contours meet in a single point of conversation. */
.cv-v3{background:#e8edf7;color:#1b294b}
.cv-v3 .cv-atmosphere{background:radial-gradient(ellipse at 24% 50%,#fff 4%,#f7f9ff80 41%,transparent 71%),linear-gradient(115deg,#e8eef9,#dbe5f6)}
.cv-v3 .cv-contours-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.cv-v3 .cv-kicker{color:#4c64a1}
.cv-v3 .cv-copy>p{color:#526385}
.cv-v3 .cinema-content h2,.motion-ready:not(.motion-reduced) .cv-v3 .cinema-content h2{font-size:clamp(44px,4.9vw,67px);font-weight:500}
.cv-v3 .cv-cta{background:#284ed3;color:#fff;border-color:#2348bd;box-shadow:0 9px 24px #2347af20}
.cv-v3 .cv-cta:hover{background:#1d41bc;color:#fff}
.cv-v3 .cv-secondary{display:flex;align-items:center;gap:8px;width:fit-content;margin-top:25px;font-size:12px;color:#405584;border-bottom:1px solid #92a4ca;padding-bottom:5px}
.cv-v3 .cv-secondary .icon{width:15px;height:15px}
.cv-v3 .cv-contour-shadow{position:absolute;left:60px;right:30px;bottom:12px;height:42px;background:#6884bd55;filter:blur(26px);border-radius:50%;transform:rotate(-8deg)}
.cv-v3 .cv-contour-sculpture{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 16px 12px #5573b62b);transform:translateY(calc((1 - var(--cv))*14px)) rotate(calc(-8deg + var(--cv)*6deg))}
.cv-v3 .cv-contour-back{transform:translate(calc((1 - var(--cv))*-30px),calc((1 - var(--cv))*-17px));transform-origin:center}
.cv-v3 .cv-contour-front{transform:translate(calc((1 - var(--cv))*34px),calc((1 - var(--cv))*25px));transform-origin:center}
.cv-v3 .cv-dialog-core{position:absolute;top:156px;left:222px;width:113px;height:113px;border-radius:29px;background:linear-gradient(145deg,#6488ed,#315ad3 62%,#2447b3);border:1px solid #a1b9ff;box-shadow:inset 1px 1px 1px #d6e2ff88,5px 9px 0 -4px #193fbb,0 14px 25px #1f43aa3f;transform:perspective(600px) rotateY(calc(-17deg + var(--cv)*11deg)) rotateZ(calc(13deg - var(--cv)*8deg));color:#fff;display:flex;align-items:center;justify-content:center;gap:4px;letter-spacing:-2px;font-size:29px;font-weight:450}
.cv-v3 .cv-dialog-core i{position:absolute;left:24px;right:24px;bottom:27px;height:1px;background:#afc7ff55}
.cv-v3 .cv-contour-label{position:absolute;color:#47628f;font-size:12px;letter-spacing:-.1px;line-height:1.4;padding:7px 12px;border:1px solid #b0c2e26b;border-radius:5px;background:#f7faffab;box-shadow:0 6px 16px #3e60900a}
.cv-v3 .cv-contour-company{left:4px;top:112px;transform:translateX(calc((1 - var(--cv))*-18px))}
.cv-v3 .cv-contour-bank{right:34px;top:91px;transform:translateX(calc((1 - var(--cv))*16px))}
.cv-v3 .cv-contour-contract{left:282px;bottom:35px;transform:translateY(calc((1 - var(--cv))*20px))}

@media(max-width:1199px){
 .cv-section{--cv-art-scale:.82}
 .cv-section>.scene-sticky{min-height:670px}
 .cv-v1 .cv-dispatch-layout,.cv-v3 .cv-contours-layout{gap:10px}
 .cv-section .cinema-content h2,.motion-ready:not(.motion-reduced) .cv-section .cinema-content h2{font-size:52px}
 .cv-section .cv-copy>p{font-size:15px;max-width:350px}
 .cv-v2 .cv-architecture-art{height:300px;--cv-art-scale:.76}
 .cv-v2 .cv-architecture-footer{width:735px;gap:25px}
}
@media(max-width:767px){
 .cv-section{--cv-art-scale:.62}
 .cv-section>.scene-sticky,.motion-ready:not(.motion-reduced) .cv-section>.scene-sticky{padding-block:48px;min-height:0}
 .cv-v1 .cv-dispatch-layout,.cv-v3 .cv-contours-layout{display:flex;flex-direction:column;gap:26px;align-items:stretch}
 .cv-section .cinema-content h2,.motion-ready:not(.motion-reduced) .cv-section .cinema-content h2{font-size:clamp(33px,8.9vw,48px);line-height:1.07;letter-spacing:-.05em}
 .cv-section .cv-kicker{font-size:11px;margin-bottom:20px}
 .cv-section .cv-copy>p{font-size:14px;line-height:1.65;max-width:440px;margin:22px 0 24px}
 .cv-section .cv-cta{min-height:52px;font-size:12px;gap:18px;padding-inline:19px;max-width:100%}
 .cv-section .cv-footnote{font-size:10px;margin-top:13px}
 .cv-section .cv-art{height:290px;margin:0 -10px}
 .cv-v1 .cv-art{order:2}
 .cv-v2 .cv-architecture-heading{text-align:left}
 .cv-v2 .cv-architecture-art{height:270px;margin:10px -15px 8px;--cv-art-scale:.56}
 .cv-v2 .cv-architecture-art .cv-art-inner{top:40%}
 .cv-v2 .cv-architecture-footer{display:flex;flex-direction:column;align-items:flex-start;gap:22px;width:100%}
 .cv-v2 .cv-architecture-footer>p{font-size:14px;line-height:1.65;max-width:440px}
 .cv-v2 .cv-model-note{display:none}
 .cv-v3 .cv-art{order:2}
 .cv-v3 .cv-secondary{font-size:11px;margin-top:19px}
 .cv-v3 .cv-contour-label{font-size:14px}
}
@media(max-width:360px){.cv-section{--cv-art-scale:.54}.cv-section .cv-art{height:255px}.cv-v2 .cv-architecture-art{--cv-art-scale:.54;height:225px}}
@media(prefers-reduced-motion:reduce){.cv-section{--cv:1!important}.cv-section .cv-cta:hover{transform:none}}
.motion-reduced .cv-section{--cv:1!important}
.motion-ready:not(.motion-reduced) .cv-section.scene-flow>.scene-sticky{height:auto;min-height:0;overflow:clip;padding-block:55px!important}
