/* ═══ ЛАБОРАТОРИЯ: разделы главной и общий UI опытов ═══ */
.sec-h{width:100%;max-width:1000px;padding:0 1.6rem;margin-bottom:-1.1rem;display:flex;align-items:center;gap:.9rem;
  font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:var(--muted)}
.sec-h::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.12),transparent)}
@media(max-width:480px){.sec-h{padding:0 .9rem;margin-bottom:-.8rem;font-size:.56rem;letter-spacing:.26em}}

.module.lab{background:#05060f}
.module.lab>canvas{position:absolute;inset:0}
.nav-sp{flex:1}
.nav-ic{width:38px;height:38px;flex-shrink:0;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:var(--text);transition:background .2s,opacity .2s}
.nav-ic:hover{background:rgba(255,255,255,.13)}
.nav-ic.dim{opacity:.45}
@media(max-width:480px){.nav-ic{width:44px;height:44px}}

.lab-info{position:absolute;top:calc(60px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);
  width:min(94vw,640px);text-align:center;z-index:40;pointer-events:none;transition:opacity .5s}
.lab-info.off{opacity:0}
.li-t{font-family:Poppins,-apple-system,'Segoe UI',system-ui,sans-serif;font-weight:700;font-size:clamp(1.08rem,4.9vw,1.65rem);
  line-height:1.22;color:#f5f3ff;text-shadow:0 2px 22px rgba(0,0,0,.7)}
.li-s{margin-top:.45rem;font-family:Poppins,-apple-system,system-ui,sans-serif;font-weight:300;font-size:clamp(.7rem,3vw,.88rem);
  line-height:1.4;color:rgba(222,220,246,.55)}
.li-st{margin-top:.75rem;display:flex;justify-content:center;gap:.4rem 1.8rem;flex-wrap:wrap;
  font-family:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:clamp(.74rem,3.3vw,.92rem);color:#efeaff}
.li-st span{white-space:nowrap}
.li-st b{font-weight:400;margin-right:.45em}
.li-c{margin-top:.4rem;font-family:Poppins,-apple-system,system-ui,sans-serif;font-size:clamp(.64rem,2.7vw,.78rem);color:rgba(232,230,252,.72);min-height:1.2em}
.li-s:empty,.li-c:empty,.li-st:empty{display:none}

.lab-hint{position:absolute;left:50%;bottom:calc(5.4rem + env(safe-area-inset-bottom,0px));transform:translateX(-50%);
  font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(230,228,255,.62);pointer-events:none;z-index:40;
  white-space:nowrap;transition:opacity 1s;opacity:0;text-shadow:0 1px 8px rgba(0,0,0,.8)}
.lab-fail{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center;
  color:var(--muted);font-size:.85rem;letter-spacing:.05em;z-index:30}
.controls .btn.on{background:color-mix(in srgb,var(--ac) 32%,transparent);border-color:var(--ac)}
.controls .btn{white-space:nowrap;padding:.55rem 1.1rem}

/* Подписи поверх сцены (планеты и т.п.) */
.lab-lbl{position:absolute;z-index:20;pointer-events:none;font-family:Poppins,-apple-system,system-ui,sans-serif;line-height:1.25;
  text-shadow:0 1px 10px rgba(0,0,0,.9)}
.lab-lbl b{display:block;font-weight:600;font-size:clamp(.8rem,3.6vw,1.02rem);color:#f4f2ff}
.lab-lbl i{font-style:normal;font-size:clamp(.66rem,2.9vw,.8rem);color:rgba(225,222,250,.6)}

/* Светлая тема (антенна) */
.module.lab.light{background:#f1ebdf}
.light .nav-bar{background:linear-gradient(180deg,rgba(241,235,223,.94) 0%,transparent 100%)}
.light .nav-title{color:#7a7264}
.light .back-btn,.light .nav-ic{color:#3a342b;background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.12)}
.light .li-t{color:#1c1914;text-shadow:0 0 18px rgba(241,235,223,.9)}
.light .li-s{color:rgba(40,34,26,.72)}
.light .li-c{color:rgba(40,34,26,.8)}
.light .li-st{color:#2a251d}
.light .lab-hint{color:rgba(50,44,36,.7);text-shadow:none}
.light .lab-lbl b{color:#1c1914;text-shadow:none}

/* Шапка и панель — компактнее на узких экранах */
.module.lab .nav-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.module.lab .nav-bar{gap:.7rem}
.lab-hint{white-space:normal;width:max-content;max-width:88vw;text-align:center;line-height:1.5}
.light .lab-info{background:radial-gradient(ellipse 60% 70% at 50% 45%,rgba(241,235,223,.92) 35%,rgba(241,235,223,0) 75%)}
@media(max-width:480px){
  .module.lab .controls{gap:.55rem;padding:.45rem .8rem}
  .module.lab input[type=range]{width:56px}
  .module.lab .controls .btn{padding:.55rem .85rem}
}

/* Подложка под текст на пёстрых сценах */
.module.lab:not(.light) .lab-info{background:radial-gradient(ellipse 62% 72% at 50% 45%,rgba(4,5,14,.6) 30%,rgba(4,5,14,0) 76%)}

/* Панель в несколько строк — для опытов с большим числом настроек */
.controls.wrap{flex-wrap:wrap;justify-content:center;row-gap:.25rem;column-gap:.8rem;border-radius:22px;overflow:visible;width:max-content;max-width:min(96vw,600px)}
.controls.wrap .ctrl label{min-width:6.5em}
