/* Three dossier choreographies. Load after site.css; all movement follows native --p. */
.hero-variant{--hv-scale:1;--assemble:clamp(0,calc(var(--p)*1.65),1);--arrival:clamp(0,calc((var(--p) - .35)*1.54),1);--close:clamp(0,calc((var(--p) - .55)*2.23),1)}
.hero-variant .hero-home .dossier-art{width:560px;height:565px;max-width:none;flex:0 0 560px;left:auto;margin:0;justify-self:center;transform:scale(var(--hv-scale))!important;transform-origin:center;perspective:1200px;isolation:isolate}
.hero-variant .hv-camera{position:absolute;inset:0;transform-style:preserve-3d}
.hero-variant .hv-art-caption{position:absolute;bottom:5px;left:0;right:0;text-align:center;font-size:11px;color:#778393;letter-spacing:.005em}
.hero-variant .hv-dossier{position:absolute;width:318px;left:121px;top:75px;background:#fff;border:1px solid #dce2eb;border-radius:11px;box-shadow:0 24px 58px #21365c1c,0 2px 3px #21365c07;padding:24px 24px 0;transform-style:preserve-3d;backface-visibility:hidden}
.hero-variant .hv-paper-head{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#6b7890;gap:15px}
.hero-variant .hv-paper-head>strong{color:#284bdd;font-size:18px;letter-spacing:-1px;font-weight:750}
.hero-variant .hv-dossier h2{font-size:25px;line-height:1.12;letter-spacing:-.9px;font-weight:600;margin:24px 0 20px}
.hero-variant .hv-paper-row{display:flex;align-items:center;gap:12px;border-top:1px solid #e6eaf0;padding:13px 0;min-height:63px}
.hero-variant .hv-paper-row>span{width:32px;height:32px;display:grid;place-items:center;background:#eff3ff;color:#284bdd;border-radius:7px;flex:none}
.hero-variant .hv-paper-row .icon{width:18px;height:18px}
.hero-variant .hv-paper-row small{display:block;color:#718094;font-size:9px;margin-bottom:5px}
.hero-variant .hv-paper-row strong{font-weight:500;font-size:12px;line-height:1.35;display:block}
.hero-variant .hv-paper-footer{display:flex;align-items:center;gap:8px;margin:6px -24px 0;padding:16px 24px;background:#edf2ff;border-top:1px solid #dbe5fc;border-radius:0 0 10px 10px;font-size:10px;color:#355191}
.hero-variant .hv-paper-footer i{width:5px;height:5px;background:#284bdd;border-radius:50%}
.hero-variant .hv-art-bed{position:absolute;left:66px;right:36px;top:58px;bottom:50px;background:#edf0f5;border-radius:24px;transform:rotate(-3deg);opacity:.58}
.hero-variant .hv-sheet{position:absolute;width:300px;height:336px;left:128px;top:77px;border:1px solid #d4ddeb;border-radius:9px;padding:26px;background:#e9eefb;box-shadow:0 16px 30px #2439640a;transform-origin:50% 92%;transform-style:preserve-3d}
.hero-variant .hv-sheet>span{font-size:10px;color:#53698d;display:block}
.hero-variant .hv-sheet>strong{font-size:22px;line-height:1.18;letter-spacing:-.6px;font-weight:550;display:block;max-width:210px;margin-top:27px}
.hero-variant .hv-sheet>i{display:block;height:5px;border-radius:3px;background:#c9d4e8;margin-top:20px;width:80%}
.hero-variant .hv-sheet>i:nth-of-type(2){width:66%;margin-top:10px}
.hero-variant .hv-sheet>i:nth-of-type(3){width:43%;margin-top:10px}
.hero-variant .hv-sheet-signature{height:31px;width:83px;border-bottom:1px solid #879bbd;transform:rotate(-9deg);margin-top:42px}

/* 1 — fan spread, convergence at the binding and a hinged blue cover. */
.hv-1 .hv-camera{transform:translate3d(calc((1 - var(--assemble))*-7px),calc(var(--close)*-9px),0) rotateY(calc(-9deg + var(--assemble)*9deg)) rotateX(calc((1 - var(--assemble))*5deg)) scale(calc(.94 + var(--close)*.09))}
.hero-variant.hv-1 .hv-art-caption{bottom:calc(-34px + var(--p)*37px)}
.hv-1 .hv-fan{position:absolute;inset:0;transform-style:preserve-3d}
.hv-1 .hv-fan-left{background:#e4ebfd;transform:translate3d(calc((1 - var(--assemble))*-48px - 14px),calc((1 - var(--assemble))*-18px - 8px),-65px) rotate(calc(-27deg + var(--assemble)*22deg))}
.hv-1 .hv-fan-right{background:#eae6f7;transform:translate3d(calc((1 - var(--assemble))*48px + 15px),calc((1 - var(--assemble))*-32px - 16px),-35px) rotate(calc(24deg - var(--assemble)*20deg))}
.hv-1 .hv-transparent-sheet{position:absolute;width:330px;height:350px;left:112px;top:67px;border:1px solid #bacbea99;border-radius:11px;background:linear-gradient(130deg,#fff8,#cfddf81a);transform:translate3d(calc((1 - var(--assemble))*30px),calc((1 - var(--assemble))*-15px),-8px) rotate(calc(12deg - var(--assemble)*12deg))}
.hv-1 .hv-dossier{transform:translate3d(calc((1 - var(--assemble))*-14px),calc((1 - var(--assemble))*12px),30px) rotate(calc(-8deg + var(--assemble)*8deg))}
.hv-1 .hv-binding-tab{position:absolute;left:353px;top:179px;display:flex;align-items:center;gap:13px;border:1px solid #cfdf9d;background:#e4efbb;padding:17px 16px;border-radius:8px;color:#44552c;font-size:10px;box-shadow:0 12px 25px #3d4c1312;transform:translate3d(calc((1 - var(--assemble))*9px),calc((1 - var(--assemble))*-75px),70px) rotate(calc(9deg - var(--assemble)*9deg));white-space:nowrap}
.hv-1 .hv-binding-tab .icon{width:18px;height:18px}
.hv-1 .hv-folder{position:absolute;left:78px;top:376px;width:402px;transform-style:preserve-3d;transform:translate3d(0,calc((1 - var(--assemble))*55px),85px) rotateX(calc((1 - var(--close))*-21deg)) rotate(calc((1 - var(--assemble))*4deg));transform-origin:center top}
.hv-1 .hv-folder-tab{background:#2544c8;color:#fff;width:210px;border-radius:9px 15px 0 0;padding:11px 17px;font-size:10px}
.hv-1 .hv-folder-face{display:flex;align-items:center;justify-content:space-between;background:#284bdd;border-top:1px solid #5c79fa;color:white;padding:18px 26px;height:115px;border-radius:0 11px 11px 11px;box-shadow:0 18px 35px #284bdd21}
.hv-1 .hv-folder-face>span{font-size:23px;line-height:1.15;letter-spacing:-.6px}
.hv-1 .hv-folder-face>b{font-weight:650;font-size:69px;letter-spacing:-6px;opacity:.25}
.hv-1 .hv-binder-spine{position:absolute;left:115px;top:95px;bottom:193px;display:flex;flex-direction:column;justify-content:space-around;transform:translate3d(calc((1 - var(--assemble))*-40px),0,66px);opacity:var(--assemble)}
.hv-1 .hv-binder-spine>i{width:18px;height:11px;border:2px solid #8093b2;border-radius:6px;background:linear-gradient(#eff3f9,#abb8ca);box-shadow:1px 2px 3px #23345026}
.hv-1 .hv-binding-rule{position:absolute;left:27px;top:125px;bottom:133px;border-left:1px solid #cbd5e3;display:flex;flex-direction:column;justify-content:space-between;padding-left:0}
.hv-1 .hv-binding-rule i{width:8px;height:1px;background:#cbd5e3}
.hv-1 .hv-binding-rule i:nth-child(2n){width:15px}

/* 2 — an architectural route with three platforms and a document passing through depth. */
.hv-2 .hv-route-grid{position:absolute;left:14px;right:14px;top:40px;bottom:65px;background:linear-gradient(#d6dfef55 1px,transparent 1px),linear-gradient(90deg,#d6dfef55 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(ellipse,#0008,transparent 72%);transform:perspective(750px) rotateX(42deg) rotateZ(-12deg);transform-origin:center}
.hv-2 .hv-camera{transform:translateX(calc(-7px + var(--p)*7px)) rotateY(calc(-15deg + var(--p)*15deg)) rotateX(calc(8deg - var(--p)*8deg));transform-origin:center}
.hv-2 .hv-route-line{position:absolute;inset:0;width:560px;height:560px;transform:translateZ(-80px);overflow:visible}
.hv-2 .hv-route-line path{stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hv-2 .hv-route-track{stroke:#cdd8ef;stroke-dasharray:4 8}
.hv-2 .hv-route-progress{stroke:#4163eb;stroke-width:3!important;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p))}
.hv-2 .hv-station{position:absolute;width:179px;height:310px;top:120px;left:9px;transform-style:preserve-3d}
.hv-2 .hv-station-paper{position:absolute;inset:0 0 55px;border:1px solid #d7deea;border-radius:9px;padding:20px;background:#fff;box-shadow:0 18px 29px #223b6512;transform-origin:bottom;transform-style:preserve-3d}
.hv-2 .hv-stage-number{font-size:11px;color:#8a9aba}
.hv-2 .hv-station-icon{display:flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:8px;background:#edf2ff;color:#3557d5;margin-top:29px}
.hv-2 .hv-station-icon .icon{height:21px;width:21px}
.hv-2 .hv-station h3{font-size:21px;font-weight:550;letter-spacing:-.6px;margin:19px 0 9px}
.hv-2 .hv-station p{font-size:11px;line-height:1.5;color:#75839a;max-width:135px}
.hv-2 .hv-rail-lines{margin-top:21px}
.hv-2 .hv-rail-lines i{height:3px;background:#e0e6f1;border-radius:2px;display:block;width:85%;margin-top:7px}
.hv-2 .hv-rail-lines i:nth-child(2){width:62%}
.hv-2 .hv-rail-lines i:nth-child(3){width:42%}
.hv-2 .hv-plinth{position:absolute;left:0;right:0;bottom:21px;height:54px;background:#dfe7fb;border:1px solid #cbd8f4;border-radius:4px 4px 9px 9px;transform:rotateX(-25deg);box-shadow:0 17px 24px #2c477415}
.hv-2 .hv-plinth:before{content:'';position:absolute;left:-1px;right:-1px;height:17px;top:-17px;background:#eff3ff;border:1px solid #cbd8f4;transform:skewX(-27deg);transform-origin:bottom}
.hv-2 .hv-plinth span{position:absolute;left:19px;top:18px;font-size:11px;color:#5f79ad}
.hv-2 .hv-station-0{transform:translate3d(calc(var(--arrival)*82px),calc(58px - var(--arrival)*24px),calc(-50px - var(--arrival)*120px)) rotateY(calc(var(--arrival)*-39deg))}
.hv-2 .hv-station-1{left:191px;top:101px;transform:translate3d(0,calc(var(--arrival)*-37px),calc(-20px - var(--arrival)*145px)) rotateY(calc(var(--arrival)*18deg))}
.hv-2 .hv-station-2{left:374px;top:32px;transform:translate3d(calc(var(--arrival)*-84px),calc(var(--arrival)*65px),calc(-50px - var(--arrival)*130px)) rotateY(calc(var(--arrival)*46deg))}
.hv-2 .hv-station-1 .hv-station-paper{background:#f6f3ff}
.hv-2 .hv-station-2 .hv-station-paper{background:#edf4ff}
.hv-2 .hv-route-final{position:absolute;inset:0;transform-style:preserve-3d;transform:translate3d(calc((1 - var(--arrival))*84px),calc(35px - var(--arrival)*26px),calc(-260px + var(--arrival)*360px)) rotateY(calc(76deg - var(--arrival)*76deg)) scale(calc(.72 + var(--arrival)*.28));opacity:clamp(0,calc(var(--p)*2.8 - .2),1)}
.hv-2 .hv-route-final .hv-dossier{top:80px}
.hv-2 .hv-route-seal{position:absolute;top:426px;left:145px;right:145px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;border:1px solid #b8c9fd;border-radius:0 0 8px 8px;background:#284bdd;color:#fff;font-size:12px;transform:translateZ(1px)}
.hv-2 .hv-route-seal .icon{width:18px;height:18px}
.hv-2 .hv-route-handoff{position:absolute;left:170px;top:490px;width:233px;display:grid;grid-template-columns:1fr 20px;gap:5px;color:#5d6c82;transform:translateY(calc((1 - var(--close))*14px));opacity:var(--close)}
.hv-2 .hv-route-handoff span{font-size:9px;grid-column:1}
.hv-2 .hv-route-handoff strong{font-weight:500;font-size:12px;grid-column:1}
.hv-2 .hv-route-handoff .icon{grid-column:2;grid-row:1/3;align-self:center;width:20px;height:20px;color:#284bdd}

/* 3 — stable central document; the four parameter planes make a real depth orbit. */
.hv-3 .hv-orbit-glow{position:absolute;inset:65px 10px 56px;background:radial-gradient(ellipse,#dbe6fb77,transparent 69%);border-radius:50%}
.hv-3 .hv-camera{transform:rotateY(calc(-13deg + var(--p)*18deg)) rotateX(calc(4deg - var(--p)*4deg)) scale(calc(.92 + var(--p)*.07));transform-origin:center}
.hv-3 .hv-orbit-ring{position:absolute;width:510px;height:510px;left:25px;top:26px;border:1px solid #b4c5e580;border-radius:50%;transform-style:preserve-3d;pointer-events:none}
.hv-3 .hv-ring-one{transform:rotateX(66deg) rotateZ(calc(-26deg + var(--p)*150deg)) translateZ(-30px);border-color:#9fb4db99}
.hv-3 .hv-ring-two{width:450px;height:450px;left:55px;top:57px;transform:rotateY(62deg) rotateZ(calc(25deg + var(--p)*125deg)) translateZ(-60px)}
.hv-3 .hv-ring-three{width:415px;height:415px;left:73px;top:73px;transform:rotateX(27deg) rotateY(-30deg) rotateZ(calc(var(--p)*90deg));border-style:dashed;border-color:#c9d5e955}
.hv-3 .hv-orbit-core{position:absolute;inset:0;transform:translateZ(35px) rotateY(calc(7deg - var(--p)*7deg));transform-style:preserve-3d}
.hv-3 .hv-orbit-core .hv-dossier{left:137px;top:98px;width:286px;padding:22px 22px 0}
.hv-3 .hv-orbit-core .hv-paper-head>span{font-size:8px}
.hv-3 .hv-orbit-core .hv-dossier h2{font-size:24px;margin-block:23px 18px}
.hv-3 .hv-orbit-core .hv-paper-row{gap:10px;padding:11px 0}
.hv-3 .hv-orbit-core .hv-paper-row strong{font-size:11px}
.hv-3 .hv-orbit-core .hv-paper-footer{margin-inline:-22px;padding-inline:22px;font-size:9px}
.hv-3 .hv-core-edge{position:absolute;width:286px;height:365px;left:148px;top:87px;border-radius:10px;background:#e0e8f8;border:1px solid #c2d0e8;transform:translateZ(-18px)}
.hv-3 .hv-orbit-system{position:absolute;left:280px;top:280px;width:0;height:0;transform-style:preserve-3d}
.hv-3 .hv-orbit-arm{position:absolute;left:0;top:0;transform-style:preserve-3d;--angle:calc(var(--angle-start) + var(--p)*132deg);transform:rotateY(var(--angle)) translate3d(0,var(--orbit-y),var(--orbit-radius))}
.hv-3 .hv-orbit-arm-0{--angle-start:-190deg;--orbit-y:-153px;--orbit-radius:219px}
.hv-3 .hv-orbit-arm-1{--angle-start:-84deg;--orbit-y:-58px;--orbit-radius:238px}
.hv-3 .hv-orbit-arm-2{--angle-start:12deg;--orbit-y:119px;--orbit-radius:224px}
.hv-3 .hv-orbit-arm-3{--angle-start:112deg;--orbit-y:158px;--orbit-radius:191px}
.hv-3 .hv-orbit-card{width:191px;position:absolute;left:-95px;top:-30px;display:flex;align-items:center;gap:12px;padding:14px 15px;border:1px solid #cddaf0;border-radius:9px;background:#fffffff5;box-shadow:0 14px 30px #24416e13;transform:rotateY(calc(-1*var(--angle)));backface-visibility:hidden;transform-style:preserve-3d}
.hv-3 .hv-orbit-card small{font-size:10px;color:#6c7f9c;display:block;margin-bottom:5px}
.hv-3 .hv-orbit-card strong{font-size:10px;font-weight:550;color:#293e60;line-height:1.3;display:block}
.hv-3 .hv-orbit-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:7px;background:#edf2ff;color:#284bdd;flex:none}
.hv-3 .hv-orbit-icon .icon{width:17px;height:17px}
.hv-3 .hv-orbit-arm-1 .hv-orbit-card{background:#edf2ff;border-color:#bfcef1}
.hv-3 .hv-orbit-arm-2 .hv-orbit-card{background:#ede9fa;border-color:#d6cdeb}
.hv-3 .hv-orbit-arm-3 .hv-orbit-card{background:#e9f0cb;border-color:#d5dfae}
.hv-3 .hv-orbit-mark{position:absolute;left:166px;right:166px;top:503px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:10px;color:#3d567d;transform:translateZ(30px)}
.hv-3 .hv-orbit-mark i{width:6px;height:6px;border-radius:50%;background:#284bdd;box-shadow:0 0 0 5px #284bdd0b}

/* Only the artwork scales; headings and controls retain the site's accessible sizing. */
@media(min-width:1200px){.hero-variant .hero-home{grid-template-columns:1.03fr .97fr}.hero-variant{--hv-scale:.96}}
@media(min-width:768px) and (max-width:1199px){.hero-variant{--hv-scale:.76}.hero-variant .hero-home .dossier-art{margin-inline:-38px;width:560px}.hv-2{--hv-scale:.73}}
@media(min-width:768px) and (max-width:950px){.hero-variant{--hv-scale:.64}.hero-variant .hero-home .dossier-art{margin-inline:-66px}.hv-2{--hv-scale:.62}}
@media(max-width:767px){
  .hero-variant{--hv-scale:.64}
  .hero-variant .hero-home .dossier-art{width:560px;height:565px;flex-basis:560px;margin:0;left:auto;transform-origin:center}
  .hero-variant .hero-home{justify-items:center}
  .hero-variant.s1-portrait .hero-home{display:flex;align-items:center;justify-content:center}
  .hero-variant:not(.s1-portrait) .hero-home .dossier-art{margin-block:-80px}
  .hero-variant .hv-art-caption{font-size:13px;bottom:0}
  .hv-1 .hv-binding-tab{font-size:11px;padding:16px 13px}
  .hv-2{--hv-scale:.60}
  .hv-2 .hv-camera{transform:rotateY(calc(-10deg + var(--p)*10deg)) rotateZ(calc(-5deg + var(--p)*5deg))}
  .hv-3{--hv-scale:.62}
  .hv-3 .hv-orbit-card{width:175px;left:-87px}
  .hv-3 .hv-orbit-arm-0{--orbit-radius:202px}
  .hv-3 .hv-orbit-arm-1{--orbit-radius:195px}
  .hv-3 .hv-orbit-arm-2{--orbit-radius:202px}
  .hv-3 .hv-orbit-arm-3{--orbit-radius:184px}
}
@media(max-width:360px){.hero-variant{--hv-scale:.54}.hv-2{--hv-scale:.52}.hv-3{--hv-scale:.53}}
.motion-ready:not(.motion-reduced) .hero-variant.scene-flow .hero-home .dossier-art{width:560px;height:565px;max-width:none;flex-basis:560px;transform:scale(var(--hv-scale))!important;margin:12px auto 0}
.motion-reduced .hero-variant .hv-camera,.motion-reduced .hero-variant .hv-camera *{transition:none!important;animation:none!important}
.hero-variant.scene-active .hv-camera,.hero-variant.scene-active .hv-orbit-arm,.hero-variant.scene-active .hv-fan>.hv-sheet{will-change:transform}
@media(prefers-reduced-motion:reduce){html:not(.motion-ready) .hero-variant{--p:1}}
