/* v29 — телефон: 3D сверху липкой сценой (сжимается после первого экрана), сцены под ней,
   плашка «КП» внизу всегда под рукой; протокол — нижний лист. */
.top-lab { display: none; }
.stage { position: sticky; top: var(--top); z-index: 5; height: 44svh; min-height: 260px; transition: height .35s ease; }
.cfg.compact .stage { height: 30svh; min-height: 200px; }
.sc-hero { padding-top: 20px; }
.flow { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
.bar { display: flex; align-items: center; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 15;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter: blur(10px); border-top: 1px solid var(--line); transition: transform .3s; }
.bar.off { transform: translateY(110%); }
.bar-t { flex: 1; margin: 0; font-weight: 600; font-size: 15px; min-width: 0; overflow-wrap: anywhere; }
.sheet { margin: auto 0 0; max-width: none; }
.sheet[open] { animation: up .3s ease both; }
@keyframes up { from { transform: translateY(40%); opacity: .4; } }
.sc-order .btn { width: 100%; }
.gcard { width: 46vw; max-width: 180px; }
.sc { scroll-margin-top: calc(var(--top) + 30svh + 8px); }
