/* Блок «Как устроена установка» в карточке (shop/_unit3d.html + js/3d/story.js). Всё внутри .u3d. */
.u3d{--on-dark:#E6EEF7;--muted-dark:#9FB0C4;position:relative;height:460vh;margin:32px 0;color:var(--on-dark);
  background:radial-gradient(120% 80% at 70% 40%,#17304d 0%,var(--navy) 60%)}
.u3d-stage{position:sticky;top:var(--hdr);height:calc(100vh - var(--hdr));height:calc(100svh - var(--hdr));display:grid;grid-template-columns:minmax(340px,38%) 1fr;overflow:hidden}
.u3d-view{position:relative;min-height:0}
.u3d-view canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.u3d-view::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),
  rgba(123,82,255,calc(var(--uvk,0) * .55)) 0%,rgba(91,52,230,calc(var(--uvk,0) * .22)) 28%,transparent 62%)}
.u3d-captions{position:relative}
.u3d-cap{position:absolute;left:max(24px,calc((100vw - 1280px) / 2 + 24px));right:24px;top:50%;transform:translateY(calc(-50% + 24px));opacity:0;
  transition:opacity .45s,transform .45s;pointer-events:none}
.u3d-cap.on{opacity:1;transform:translateY(-50%);pointer-events:auto}
.u3d-eyebrow{font:600 13px/1 var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--uv-glow);margin-bottom:14px}
.u3d-cap h2{font-size:clamp(28px,3.2vw,44px);line-height:1.1;margin:0 0 16px;color:#fff}
.u3d-cap p{margin:0 0 12px;color:var(--muted-dark);font-size:17px;max-width:460px}
.u3d-facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.u3d-facts span{border:1px solid #2B4363;border-radius:6px;padding:6px 10px;font-size:14px}
.u3d-cta{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.u3d .u3d-ghost{background:transparent;color:var(--on-dark);box-shadow:inset 0 0 0 1.5px #3A557A}
.u3d .u3d-ghost:hover{box-shadow:inset 0 0 0 1.5px var(--uv-glow)}
.u3d-price{font:600 32px/1 var(--display);margin:6px 0 4px;color:#fff}
.u3d-labels{position:absolute;inset:0;pointer-events:none}
.u3d .lbl{position:absolute;left:0;top:0;white-space:nowrap;font-size:13px;line-height:1.2;color:#fff;background:rgba(14,27,44,.78);border:1px solid #36507a;
  border-radius:6px;padding:5px 9px;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s}
.u3d .lbl b{display:block;font-weight:600}.u3d .lbl small{color:var(--muted-dark);font-size:12px}.u3d .lbl.on{opacity:1}
.u3d-rail{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:3px;height:160px;background:#24395a;border-radius:2px}
.u3d-rail i{position:absolute;left:0;top:0;width:100%;background:var(--uv-glow);border-radius:2px}
.u3d-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted-dark);font-size:14px}
.u3d-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-size:13px;color:var(--muted-dark);transition:opacity .4s}
@media (max-width:860px){
  .u3d{height:420vh}
  .u3d-stage{grid-template-columns:1fr;grid-template-rows:60% 40%}
  .u3d-view{grid-row:1}
  .u3d-captions{grid-row:2}
  .u3d-cap{left:16px;right:16px;top:8px;transform:translateY(16px)}
  .u3d-cap.on{transform:none}
  .u3d-cap h2{font-size:24px;margin-bottom:8px}
  .u3d-cap p{font-size:15px}
  .u3d-eyebrow{margin-bottom:8px}
  .u3d .lbl{font-size:12px;padding:4px 7px}.u3d .lbl small{display:none}
  .u3d-rail{display:none}
  .u3d-hint{bottom:auto;top:16px}
}
