/* One H.OS camera, one world, one scale rig. Background and panels share perspective. */
.drs-section{height:150vh}.drs-camera{position:absolute;inset:0;perspective:calc(1560px * var(--k,1));perspective-origin:50% 47%;--mx:50%;--my:40%}.drs-world,.drs-rig{position:absolute;inset:0;pointer-events:none;transform-style:preserve-3d}.drs-rig{transform:scale3d(var(--k,1),var(--k,1),var(--k,1))}.drs-environment{position:absolute;left:50%;top:50%;width:340%;height:340%;transform:translate(-50%,-50%) translateZ(-980px);pointer-events:none;transition:transform 2.4s cubic-bezier(.16,1,.3,1)}.drs-room{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.drs-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0a182640,#13243710 50%,#09151d55)}
.drs-glass{pointer-events:auto;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) translate3d(calc(var(--px,0px) + var(--sx,0px)),calc(var(--py,0px) + var(--sy,0px)),calc(var(--pz,0px) + var(--hz,0px) + var(--sz,0px))) rotateY(calc(var(--ry,0deg) + var(--sry,0deg))) rotateX(var(--rx,0deg));transition:transform .85s cubic-bezier(.16,1,.3,1),opacity .6s ease,filter .6s ease;transition-delay:var(--d,0s)}
.drs-map-panel{--px:-20px;--py:-75px;--pz:20px;--ry:-1deg;--d:.02s;width:860px}.drs-layers{--px:-645px;--py:-65px;--pz:-160px;--ry:18deg;--rx:2deg;--d:.1s;width:240px}.drs-brief{--px:640px;--py:-70px;--pz:-160px;--ry:-18deg;--rx:2deg;--d:.18s;width:290px}.drs-chart{--px:-195px;--py:315px;--pz:150px;--rx:-7deg;--d:.26s;width:620px}.drs-evidence-card{--px:465px;--py:355px;--pz:100px;--ry:-8deg;--rx:-5deg;--d:.32s;width:290px}
.drs-camera.is-unlock [data-panel]{--hz:0px;--sz:-520px;opacity:0;pointer-events:none}.drs-camera.is-unlock .drs-map-panel{--sy:-620px}.drs-camera.is-unlock .drs-layers{--sx:-760px;--sry:18deg}.drs-camera.is-unlock .drs-brief{--sx:760px;--sry:-18deg}.drs-camera.is-unlock .drs-chart{--sx:-620px;--sy:360px}.drs-camera.is-unlock .drs-evidence-card{--sx:620px;--sy:360px}.drs-camera.is-unlock .drs-environment{transform:translate(-50%,-50%) translateZ(-980px) scale(1.03)}.drs-camera.is-unlocked [data-panel]{transition-delay:0s}
.drs-heading{top:32%;transition:opacity .45s ease,transform .55s cubic-bezier(.16,1,.3,1),visibility .45s}.drs-heading.is-hidden{opacity:0;visibility:hidden;transform:translateY(10px)}.drs-enter{margin-top:24px;padding:12px 24px;border:1px solid #ffffff60;border-radius:30px;background:#ffffff18;color:white;backdrop-filter:blur(12px);cursor:pointer;font:inherit}
@media(hover:hover) and (pointer:fine){.drs-glass:hover{--hz:32px}}
.drs-camera.is-focus .drs-glass:not(.is-focus){opacity:.45;filter:saturate(.7);--sz:-100px}.drs-camera.is-focus .drs-glass.is-focus{--ry:0deg;--rx:0deg}.drs-section.file-open .drs-glass{opacity:.5;--sz:-200px;pointer-events:none}
@media(max-width:800px),(prefers-reduced-motion:reduce){.drs-section{height:auto}.drs-sticky{position:relative;height:auto;min-height:0;padding:64px 20px 30px}.drs-heading{position:relative;inset:auto;width:auto;margin-bottom:24px}.drs-heading.is-hidden{visibility:visible;opacity:1;transform:none}.drs-camera{position:static;perspective:none}.drs-world,.drs-rig{position:static;transform:none!important}.drs-rig{display:grid;gap:16px}.drs-environment{position:absolute;inset:0;width:100%;height:100%;transform:none!important;z-index:-1}.drs-glass{position:relative;inset:auto;width:100%;transform:none!important;opacity:1!important;filter:none!important;background:linear-gradient(158deg,#ffffff12,#ffffff03),#0c161e55}.drs-map-panel{order:1}.drs-layers{order:2}.drs-brief{order:3}.drs-chart{order:4}.drs-evidence-card{order:5}.drs-map-viewport{aspect-ratio:1.8}.drs-panel-top{padding:14px 12px}.drs-panel-top b{font-size:20px;margin-right:6px}.drs-map-label{font-size:10px}.drs-demo{font-size:7px}.drs-map-tools button{width:26px;height:26px}.drs-hotspot span{font-size:6px}.drs-map-hint{font-size:7px}.drs-map-footer{padding:10px;font-size:8px}.drs-bottom,.drs-focus-toggle{display:none}.drs-cases{margin:10px -8px}.drs-timeline{gap:8px}.drs-timeline span{font-size:10px}.dossier-grid{grid-template-columns:1fr;gap:0}.dossier-content{padding:22px}.drs-dossier h2{font-size:28px}}
@media(max-width:800px){.drs-camera:not(.is-unlocked) .drs-glass{display:none}.drs-camera:not(.is-unlocked) .drs-environment{display:block}}
@media(prefers-reduced-motion:reduce){.drs-enter{display:none}.drs-glass,.drs-heading,.drs-environment{transition:none!important}.drs-camera.is-unlock .drs-glass{display:block;pointer-events:auto}}

/* H.OS scene light layers: spatial.css + hero-day.css. */
.drs-glow { position: absolute; left: 50%; top: 50%; border-radius: 50%; pointer-events: none; }
.drs-g1 { width: 1180px; height: 800px; margin: -400px 0 0 -590px;
      transform: translate3d(-30px, -130px, -800px);
      background: radial-gradient(closest-side, rgba(124, 158, 224, 0.22), rgba(124, 158, 224, 0)); }
.drs-g2 { width: 660px; height: 560px; margin: -280px 0 0 -330px;
      transform: translate3d(-640px, 130px, -660px);
      background: radial-gradient(closest-side, rgba(232, 178, 108, 0.2), rgba(232, 178, 108, 0)); }
.drs-g3 { width: 680px; height: 580px; margin: -290px 0 0 -340px;
      transform: translate3d(680px, 150px, -700px);
      background: radial-gradient(closest-side, rgba(232, 178, 108, 0.22), rgba(232, 178, 108, 0)); }
/* 跟着鼠标走的那一层薄空气，挂在更近一点的地方 */
.drs-air {
  position: absolute; left: 50%; top: 50%;
  width: 150%; height: 150%;
  transform: translate(-50%, -50%) translateZ(-500px);
  background: radial-gradient(46% 40% at var(--mx) var(--my), rgba(122, 152, 214, 0.17), transparent 68%);
  pointer-events: none;
}
/* 中枢打在地上的一小片光。躺平放（rotateX 78°），所以它是「地面」不是「墙」 */
.drs-pool {
  position: absolute; left: 50%; top: 50%;
  width: 1500px; height: 900px; margin: -450px 0 0 -750px;
  transform: translate3d(20px, 468px, -250px) rotateX(78deg);
  background: radial-gradient(closest-side, rgba(194, 161, 102, 0.14), rgba(194, 161, 102, 0.04) 55%, rgba(194, 161, 102, 0));
  pointer-events: none;
}

/* H.OS hero-day.css daylight light strength. */
.drs-camera .drs-g1{background:radial-gradient(closest-side,rgba(124,158,224,.1),rgba(124,158,224,0))}
.drs-camera .drs-air{background:radial-gradient(46% 40% at var(--mx) var(--my),rgba(122,152,214,.08),transparent 68%)}
@media(max-width:800px),(prefers-reduced-motion:reduce){.drs-glow,.drs-air,.drs-pool{display:none}}
