/* CHERNAMARS — LTS · LAVA TUBE SETTLEMENT SYSTEM.
   Тот же терминальный язык, что у всего сайта: чёрный, красный сигнал, моноширинные данные.
   Тёплый янтарь — только для гермообъёмов (как тёплые окна на рендерах). Классы с префиксом lts-. */
.lts-page { padding-top: var(--top-h); }
.lts-wrap { max-width: 1240px; margin: 0 auto; padding: 0 var(--rail) 96px; }

/* ---------- герой ---------- */
.lts-hero { position: relative; min-height: min(86vh, 820px); display: flex; align-items: flex-end; overflow: hidden; border-bottom: 1px solid var(--line); }
.lts-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; }
.lts-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,1,2,.15) 0%, rgba(3,1,2,.25) 40%, rgba(3,1,2,.92) 88%, var(--void) 100%), linear-gradient(90deg, rgba(3,1,2,.75) 0%, rgba(3,1,2,0) 60%); }
.lts-hero-in { position: relative; z-index: 1; max-width: 1240px; width: 100%; margin: 0 auto; padding: 120px var(--rail) 56px; }
.lts-eyebrow, .lts-k, .lts-sec-code { font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--signal); margin: 0 0 12px; }
.lts-hero h1 { font-family: var(--f-disp); font-weight: 600; font-size: clamp(36px, 6.4vw, 84px); line-height: .95; letter-spacing: .02em; color: var(--bone); margin: 0 0 20px; text-shadow: 0 2px 30px rgba(0,0,0,.6); }
.lts-lead { max-width: 640px; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.55; color: var(--text); margin: 0 0 28px; }
.lts-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; max-width: 760px; background: var(--line); border: 1px solid var(--line); margin-bottom: 28px; }
.lts-stats > div { background: rgba(10,3,4,.78); padding: 14px 16px; backdrop-filter: blur(8px); }
.lts-stats b { display: block; white-space: nowrap; font-family: var(--f-disp); font-size: clamp(18px, 2vw, 26px); color: var(--bone); font-weight: 600; }
.lts-stats span { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--dim); }
.lts-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.lts-btn { font-family: var(--f-mono); font-size: 12px; letter-spacing: .14em; padding: 13px 22px; border: 1px solid var(--signal); background: var(--signal); color: var(--void); cursor: pointer; border-radius: 0; transition: background .2s, color .2s; }
.lts-btn.ghost { background: transparent; color: var(--bone); border-color: var(--line-strong); }
@media (hover: hover) { .lts-btn:hover { background: var(--hot); } .lts-btn.ghost:hover { background: rgba(255,42,31,.12); border-color: var(--signal); } }

/* ---------- разделы ---------- */
.lts-sec { margin: 88px 0 28px; max-width: 760px; }
.lts-sec h2 { font-family: var(--f-disp); font-weight: 600; font-size: clamp(24px, 3.2vw, 40px); letter-spacing: .03em; color: var(--bone); margin: 0 0 12px; line-height: 1.05; }
.lts-sec p, .lts-p { color: var(--ash); font-size: 15px; line-height: 1.6; margin: 0; }
.lts-p { margin: 0 0 18px; }
.lts-p.dim { color: var(--dim); font-size: 13px; }

.lts-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.lts-facts > div { background: var(--ink); padding: 22px 20px; }
.lts-facts b { display: block; font-family: var(--f-disp); font-size: 28px; color: var(--signal); font-weight: 600; margin-bottom: 8px; }
.lts-facts span { font-size: 13.5px; line-height: 1.5; color: var(--ash); }
.lts-zones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.lts-zones > div { border-left: 2px solid var(--line-strong); padding: 6px 0 6px 16px; }
.lts-zones p { margin: 8px 0 0; font-size: 13.5px; color: var(--ash); line-height: 1.5; }
.lts-z { font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; }
.lts-z.z0 { color: var(--dim); }
.lts-z.z1 { color: var(--ember); }
.lts-z.z2 { color: var(--amber); }

/* ---------- разрез ---------- */
.lts-x { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 0; border: 1px solid var(--line); background: radial-gradient(ellipse at 50% 30%, rgba(143,15,22,.12), transparent 70%), var(--ink); }
.lts-x-draw { padding: 12px; min-width: 0; }
.lts-x-svg { display: block; width: 100%; height: auto; font-family: var(--f-mono); }
.lts-x-svg .rock { fill: url(#ltsRock); stroke: none; }
.lts-x-svg .hatch { stroke: rgba(255,72,60,.16); stroke-width: 1; }
.lts-x-svg .cave { fill: none; stroke: rgba(255,72,60,.6); stroke-width: 1.6; }
.lts-x-svg .lvl { stroke: rgba(255,72,60,.14); stroke-dasharray: 4 6; }
.lts-x-svg .dim { stroke: rgba(255,72,60,.35); }
.lts-x-svg .t-dim { fill: var(--dim); font-size: 11px; letter-spacing: .12em; }
.lts-x-svg .t-lab { fill: var(--ash); font-size: 13px; letter-spacing: .1em; font-weight: 500; pointer-events: none; }
.lts-x-b { cursor: pointer; outline: none; }
.lts-x-b .hit { fill: transparent; }
.lts-x-b .s { fill: none; stroke: rgba(255,90,76,.55); stroke-width: 1.2; transition: stroke .2s; }
.lts-x-b .v { fill: rgba(255,176,46,.1); stroke: rgba(255,176,46,.55); stroke-width: 1; transition: fill .2s, stroke .2s; }
.lts-x-b .g { fill: rgba(255,60,150,.1); stroke: rgba(255,90,170,.5); stroke-width: 1; transition: fill .2s; }
.lts-x-b .hub { fill: rgba(255,90,76,.55); }
.lts-x-b .br { fill: rgba(255,176,46,.18); stroke: rgba(255,176,46,.6); stroke-width: 1; }
.lts-x-b .rail { fill: rgba(255,90,76,.75); }
.lts-x-b .sig { stroke: var(--signal); stroke-width: 2.4; stroke-dasharray: 12 9; filter: drop-shadow(0 0 4px rgba(255,42,31,.8)); }
.lts-x-b.on .s, .lts-x-b:focus-visible .s { stroke: var(--hot); stroke-width: 1.8; }
.lts-x-b.on .v, .lts-x-b:focus-visible .v { fill: rgba(255,176,46,.3); stroke: var(--amber); }
.lts-x-b.on .g { fill: rgba(255,60,150,.32); }
.lts-x-b.on .br { fill: rgba(255,176,46,.5); }
@media (hover: hover) { .lts-x-b:hover .s { stroke: var(--hot); } .lts-x-b:hover .v { fill: rgba(255,176,46,.22); } }
.lts-x-info { border-left: 1px solid var(--line); padding: 24px 22px; background: rgba(10,3,4,.6); }
.lts-x-info h3, .lts-m-info h3 { font-family: var(--f-disp); font-weight: 600; font-size: 22px; letter-spacing: .03em; color: var(--bone); margin: 0 0 16px; }
.lts-dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin: 0 0 18px; }
.lts-dl.col { grid-template-columns: 1fr; gap: 10px; border-top: 1px solid var(--line); padding-top: 14px; }
.lts-dl dt { font-family: var(--f-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--dim); margin-bottom: 3px; }
.lts-dl dd { margin: 0; font-size: 14px; color: var(--text); line-height: 1.4; }
.lts-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.lts-chip { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .06em; padding: 6px 9px; border: 1px solid var(--line-strong); background: transparent; color: var(--bone); cursor: pointer; border-radius: 0; transition: background .2s, border-color .2s; }
.lts-chip.off { color: var(--dim); cursor: default; }
@media (hover: hover) { .lts-chip:not(.off):hover { background: rgba(255,42,31,.14); border-color: var(--signal); } }

/* ---------- каталог ---------- */
.lts-feat { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 40px; }
.lts-card { position: relative; display: flex; flex-direction: column; text-align: left; padding: 0; border: 1px solid var(--line); background: var(--ink); color: inherit; cursor: pointer; border-radius: 0; overflow: hidden; transition: border-color .25s, transform .25s var(--ease); font: inherit; }
.lts-card-img { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: #080203; }
.lts-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.lts-card-b { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 16px; }
.lts-card-fam { font-family: var(--f-mono); font-size: 10px; letter-spacing: .12em; color: var(--dim); }
.lts-card-code { font-family: var(--f-mono); font-size: 13px; letter-spacing: .08em; color: var(--signal); }
.lts-card-name { font-family: var(--f-disp); font-size: 17px; font-weight: 600; color: var(--bone); }
.lts-card-size { font-size: 12.5px; color: var(--ash); line-height: 1.4; }
@media (hover: hover) { .lts-card:hover { border-color: var(--line-strong); transform: translateY(-2px); } .lts-card:hover .lts-card-img img { transform: scale(1.04); } }
.lts-card:focus-visible { outline: 1px solid var(--signal); outline-offset: 2px; }
.lts-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.lts-tab { font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; padding: 8px 12px; border: 1px solid var(--line); background: transparent; color: var(--ash); cursor: pointer; border-radius: 0; }
.lts-tab.on { border-color: var(--signal); color: var(--bone); background: rgba(255,42,31,.12); }
.lts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.lts-card-r { font-family: var(--f-mono); font-size: 10px; letter-spacing: .12em; color: var(--dim); margin-top: 6px; }
.lts-card-img.wide { aspect-ratio: 16 / 9; }
.lts-card-img.ph { display: flex; align-items: center; justify-content: center; background: repeating-linear-gradient(45deg, rgba(255,72,60,.05) 0 2px, transparent 2px 12px), #080203; }
.lts-card-img.ph em { font-style: normal; font-family: var(--f-mono); font-size: 13px; letter-spacing: .12em; color: var(--dim); }
.lts-grid .lts-card[hidden] { display: none; }

/* ---------- город ---------- */
.lts-city { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.lts-shot { position: relative; padding: 0; border: 1px solid var(--line); background: #080203; cursor: zoom-in; overflow: hidden; border-radius: 0; color: inherit; font: inherit; text-align: left; aspect-ratio: 3 / 2; }
.lts-shot.s3 { grid-column: 1 / -1; aspect-ratio: 2.4 / 1; }
.lts-shot img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--ease); }
.lts-shot > span { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 16px 14px; background: linear-gradient(0deg, rgba(3,1,2,.96) 0%, rgba(3,1,2,.85) 55%, rgba(3,1,2,0) 100%); display: flex; flex-direction: column; gap: 4px; }
.lts-shot b { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em; color: var(--signal); font-weight: 500; }
.lts-shot em { font-style: normal; font-size: 13px; color: var(--ash); line-height: 1.45; }
@media (hover: hover) { .lts-shot:hover img { transform: scale(1.03); } }

/* ---------- строительство и этапы ---------- */
.lts-build { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 28px; }
.lts-robots { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); align-content: start; }
.lts-robots > div { background: var(--ink); padding: 14px 16px; display: flex; flex-direction: column; gap: 3px; }
.lts-robots b { font-family: var(--f-mono); font-size: 12px; letter-spacing: .08em; color: var(--signal); font-weight: 500; }
.lts-robots span { font-family: var(--f-disp); font-size: 15px; color: var(--bone); font-weight: 600; }
.lts-robots em { font-style: normal; font-size: 12.5px; color: var(--ash); line-height: 1.4; }
.lts-steps { margin: 0; padding: 0; list-style: none; counter-reset: s; }
.lts-steps li { counter-increment: s; position: relative; padding: 10px 0 10px 44px; border-bottom: 1px solid var(--line); font-size: 14px; color: var(--text); line-height: 1.45; }
.lts-steps li::before { content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: 11px; font-family: var(--f-mono); font-size: 12px; color: var(--signal); letter-spacing: .08em; }
.lts-note { margin: 22px 0 0; padding: 16px 18px; border: 1px solid var(--line); border-left: 2px solid var(--amber); font-size: 14px; color: var(--ash); line-height: 1.55; }
.lts-phases { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.lts-ph { border: 1px solid var(--line); background: var(--ink); padding: 18px; display: flex; flex-direction: column; gap: 4px; }
.lts-ph.last { border-color: var(--signal); background: rgba(255,42,31,.06); }
.lts-ph-n { font-family: var(--f-mono); font-size: 12px; letter-spacing: .12em; color: var(--signal); }
.lts-ph-y { font-family: var(--f-mono); font-size: 11px; color: var(--dim); letter-spacing: .08em; }
.lts-ph b { font-family: var(--f-disp); font-size: 22px; color: var(--bone); font-weight: 600; margin-top: 8px; }
.lts-ph-e { font-size: 13px; color: var(--ash); }
.lts-ph p { margin: 10px 0 0; font-size: 13px; color: var(--ash); line-height: 1.45; flex: 1; }
.lts-ph em { font-style: normal; font-family: var(--f-mono); font-size: 11px; letter-spacing: .04em; color: var(--amber); margin-top: 12px; line-height: 1.45; }
.lts-foot { margin: 64px 0 0; padding-top: 20px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--dim); line-height: 1.6; max-width: 760px; }

/* ---------- окно ---------- */
html.lts-lock, html.lts-lock body { overflow: hidden; }
.lts-modal { position: fixed; inset: 0; z-index: 8500; background: rgba(3,1,2,.88); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; transition: opacity .25s; }
.lts-modal.on { opacity: 1; }
.lts-modal-in { position: relative; width: min(1180px, 100%); max-height: calc(100vh - 48px); overflow: auto; border: 1px solid var(--line-strong); background: var(--ink); }
.lts-modal.shot .lts-modal-in { width: min(1600px, 100%); background: #050102; }
.lts-close { position: absolute; top: 10px; right: 10px; z-index: 2; width: 40px; height: 40px; border: 1px solid var(--line-strong); background: rgba(10,3,4,.85); color: var(--bone); font-size: 22px; line-height: 1; cursor: pointer; border-radius: 0; }
.lts-m-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.lts-m-media { background: #050102; display: flex; flex-direction: column; gap: 1px; }
.lts-m-pic { margin: 0; }
.lts-m-pic img { display: block; width: 100%; height: auto; }
.lts-m-pic.more { border-top: 1px solid var(--line); }
.lts-m-ph { min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; background: repeating-linear-gradient(45deg, rgba(255,72,60,.05) 0 2px, transparent 2px 12px); }
.lts-m-ph span { font-family: var(--f-disp); font-size: 34px; color: var(--bone); letter-spacing: .04em; }
.lts-m-ph em { font-style: normal; font-family: var(--f-mono); font-size: 11px; color: var(--dim); letter-spacing: .12em; text-transform: uppercase; }
.lts-m-info { padding: 28px 26px; }
.lts-m-info h3 { font-size: 30px; margin-bottom: 4px; color: var(--signal); }
.lts-m-name { font-family: var(--f-disp); font-size: 19px; color: var(--bone); margin: 0 0 18px; font-weight: 600; }
.lts-m-shot { margin: 0; }
.lts-m-shot img { display: block; width: 100%; height: auto; max-height: calc(100vh - 140px); object-fit: contain; }
.lts-m-shot figcaption { padding: 14px 18px; font-size: 13.5px; color: var(--ash); line-height: 1.5; }
.lts-m-shot figcaption b { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .12em; color: var(--signal); font-weight: 500; margin-right: 8px; }

/* ---------- адаптив ---------- */
@media (max-width: 1080px) {
  .lts-feat { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lts-x { grid-template-columns: 1fr; }
  .lts-x-info { border-left: 0; border-top: 1px solid var(--line); }
  .lts-phases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lts-build { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .lts-hero { min-height: 92vh; }
  .lts-hero-img { object-position: 50% 40%; }
  .lts-hero-in { padding: 96px var(--rail) 36px; }
  .lts-stats { grid-template-columns: 1fr 1fr; }
  .lts-facts { grid-template-columns: 1fr 1fr; }
  .lts-facts b { font-size: 22px; }
  .lts-zones { grid-template-columns: 1fr; }
  .lts-sec { margin-top: 64px; }
  .lts-city { grid-template-columns: 1fr; }
  .lts-shot.s3 { aspect-ratio: 3 / 2; }
  .lts-m-grid { grid-template-columns: 1fr; }
  .lts-modal { padding: 0; }
  .lts-modal-in { max-height: 100vh; height: 100%; border: 0; }
  .lts-x-draw { padding: 4px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .lts-x-svg { min-width: 680px; }
  .lts-hero::after { background: linear-gradient(180deg, rgba(3,1,2,.35) 0%, rgba(3,1,2,.7) 35%, rgba(3,1,2,.94) 75%, var(--void) 100%); }
  .lts-x-info { padding: 20px 16px; }
  .lts-dl { grid-template-columns: 1fr; }
}
@media (max-width: 460px) {
  .lts-feat { gap: 10px; }
  .lts-card-b { padding: 10px 12px 12px; }
  .lts-card-name { font-size: 15px; }
  .lts-robots { grid-template-columns: 1fr; }
  .lts-phases { grid-template-columns: 1fr; }
  .lts-facts { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .lts-card, .lts-card img, .lts-shot img, .lts-modal { transition: none; } }

/* ---------- окно LTS на странице CHERNAMARS ---------- */
.lts-win { padding-top: clamp(14px, 2vw, 22px); }
.lts-win-frame { position: relative; overflow: hidden; aspect-ratio: 16 / 7; border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: #050202; isolation: isolate; }
.lts-win-pan { position: absolute; left: 0; top: -9%; height: 118%; aspect-ratio: 1942 / 809; will-change: transform; }
.lts-win.live .lts-win-pan { animation: ltsPan 48s ease-in-out infinite alternate; }
@keyframes ltsPan { from { transform: translateX(0); } to { transform: translateX(-19%); } }
.lts-win-pan img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; filter: contrast(1.05) saturate(1.05); }
.lts-win-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(3,1,1,.9) 0%, rgba(3,1,1,.5) 34%, rgba(3,1,1,0) 62%), linear-gradient(0deg, rgba(3,1,1,.75), transparent 42%), linear-gradient(180deg, rgba(3,1,1,.45), transparent 22%); }
.lts-win-scan { position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,42,31,.85) 30%, rgba(255,42,31,.85) 70%, transparent); box-shadow: 0 0 12px rgba(255,42,31,.7); opacity: 0; pointer-events: none; }
.lts-win.live .lts-win-scan { animation: ltsScan 9s linear infinite; }
@keyframes ltsScan { 0% { top: 0; opacity: 0; } 4% { opacity: .9; } 46% { opacity: .9; } 50% { top: 100%; opacity: 0; } 100% { top: 100%; opacity: 0; } }

.lts-spot { position: absolute; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 8px; text-decoration: none; z-index: 2; }
.lts-spot i { position: relative; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--signal); background: rgba(255,42,31,.25); box-shadow: 0 0 10px rgba(255,42,31,.8); flex: none; }
.lts-spot i::after { content: ''; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid rgba(255,42,31,.6); opacity: 0; }
.lts-win.live .lts-spot i::after { animation: ltsPing 2.6s ease-out infinite; }
.lts-spot:nth-child(3) i::after { animation-delay: .5s; } .lts-spot:nth-child(4) i::after { animation-delay: 1s; } .lts-spot:nth-child(5) i::after { animation-delay: 1.5s; } .lts-spot:nth-child(6) i::after { animation-delay: 2s; }
@keyframes ltsPing { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(2.2); opacity: 0; } }
.lts-spot span { font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em; color: var(--bone); background: rgba(5,1,2,.72); border: 1px solid rgba(255,72,60,.35); padding: 4px 7px; white-space: nowrap; opacity: .85; transition: opacity .25s, border-color .25s, background .25s; }
@media (hover: hover) { .lts-spot:hover span { opacity: 1; border-color: var(--signal); background: rgba(40,4,6,.9); } }

.lts-win-body { position: absolute; left: clamp(18px, 3.4vw, 44px); bottom: clamp(18px, 3.4vw, 40px); right: 46%; display: grid; gap: 10px; justify-items: start; z-index: 3; }
.lts-win-eb { font-family: var(--f-mono); font-size: 10px; letter-spacing: .34em; color: var(--signal); }
.lts-win-title { font-family: var(--f-disp); font-weight: 500; font-size: clamp(22px, 3.4vw, 46px); letter-spacing: .26em; line-height: 1.12; color: var(--bone); text-shadow: 0 2px 20px rgba(0,0,0,.7); }
.lts-win-text { max-width: 420px; font-size: 14px; line-height: 1.6; color: var(--text); }
.lts-win-btn { margin-top: 6px; display: inline-flex; align-items: center; gap: 14px; padding: 12px 18px; font-family: var(--f-mono); font-size: 11px; letter-spacing: .3em; color: var(--bone); text-decoration: none; border: 1px solid rgba(243,233,230,.4); background: rgba(3,1,1,.35); transition: border-color .25s, background .25s, box-shadow .25s; }
.lts-win-btn i { font-style: normal; color: var(--signal); transition: transform .25s; }
@media (hover: hover) { .lts-win-btn:hover { border-color: var(--signal); background: rgba(255,42,31,.12); box-shadow: 0 0 24px rgba(255,42,31,.25); } .lts-win-btn:hover i { transform: translateX(4px); } }

.lts-win-term { position: absolute; top: 14px; right: 14px; z-index: 3; margin: 0; min-width: 230px; padding: 10px 12px; display: grid; gap: 5px; background: rgba(5,1,2,.72); border: 1px solid var(--line-strong); backdrop-filter: blur(6px); font-family: var(--f-mono); }
.lts-win-term > div { display: flex; justify-content: space-between; gap: 14px; }
.lts-win-term dt { font-size: 9.5px; letter-spacing: .2em; color: var(--dim); }
.lts-win-term dd { margin: 0; font-size: 10.5px; letter-spacing: .1em; color: var(--bone); text-align: right; }
.lts-win-term b { font-weight: 500; color: var(--amber); }
.lts-win.tick [data-q] { animation: ltsBlink .6s ease-out; }
@keyframes ltsBlink { from { color: var(--signal); text-shadow: 0 0 8px rgba(255,42,31,.9); } to { color: var(--amber); text-shadow: none; } }

@media (max-width: 760px) {
  .lts-win-frame { aspect-ratio: 4 / 5; }
  .lts-win-pan { top: 0; height: 100%; }
  .lts-win.live .lts-win-pan { animation-name: ltsPanM; animation-duration: 60s; }
  @keyframes ltsPanM { from { transform: translateX(-8%); } to { transform: translateX(-58%); } }
  .lts-win-shade { background: linear-gradient(0deg, rgba(3,1,1,.95) 0%, rgba(3,1,1,.55) 42%, rgba(3,1,1,.05) 70%), linear-gradient(180deg, rgba(3,1,1,.55), transparent 28%); }
  .lts-win-body { right: 18px; }
  .lts-spot span { display: none; }
  .lts-spot.lo { display: none; }
  .lts-spot i { width: 14px; height: 14px; }
  .lts-win-title { letter-spacing: .18em; }
  .lts-win-term { left: 12px; right: 12px; top: 12px; min-width: 0; grid-template-columns: 1fr 1fr; gap: 6px 14px; }
  .lts-win-term > div { flex-direction: column; gap: 1px; }
  .lts-win-term dd { text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .lts-win-pan, .lts-win-scan, .lts-spot i::after { animation: none !important; } }

/* ---------- 3D-узел ---------- */
.lts-n + .lts-sec { margin-top: 56px; }
.lts-n { border: 1px solid var(--line); background: radial-gradient(ellipse at 50% 35%, rgba(255,120,60,.08), transparent 60%), radial-gradient(ellipse at 20% 80%, rgba(143,15,22,.18), transparent 60%), #070203; }
.lts-n-stage { position: relative; height: min(68vh, 620px); min-height: 380px; }
.lts-n-stage canvas { display: block; width: 100%; height: 100%; touch-action: pan-y; cursor: grab; }
.lts-n-stage canvas:active { cursor: grabbing; }
.lts-n-load { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--f-mono); font-size: 11px; letter-spacing: .2em; color: var(--dim); pointer-events: none; transition: opacity .4s; }
.lts-n.ready .lts-n-load { opacity: 0; }
.lts-n-labels { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .4s; }
.lts-n-labels.on { opacity: 1; }
.lts-n-lab { position: absolute; left: 0; top: 0; white-space: nowrap; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .12em; color: var(--bone); padding: 4px 8px 4px 14px; background: rgba(5,1,2,.75); border: 1px solid var(--line-strong); margin: -12px 0 0 8px; }
.lts-n-lab::before { content: ''; position: absolute; left: -8px; top: 50%; width: 12px; height: 1px; background: var(--signal); }
.lts-n-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-top: 1px solid var(--line); }
.lts-n-st { font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; color: var(--amber); }
.lts-n-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.lts-n-btns .lts-btn { padding: 10px 14px; font-size: 11px; }
.lts-n-btns .lts-btn.ghost.on { border-color: var(--signal); background: rgba(255,42,31,.14); }
.lts-m-info .lts-btn { margin: 0 0 18px; }
@media (max-width: 760px) {
  .lts-n-stage { height: 64vh; min-height: 340px; }
  .lts-n-lab { font-size: 9.5px; padding: 3px 6px 3px 12px; }
  .lts-n-btns { width: 100%; }
  .lts-n-btns .lts-btn { flex: 1 1 auto; }
}

/* =====================================================================
   ЭНЦИКЛОПЕДИЯ LTS — терминальный экран: красный неон, моноширинные данные, строки развёртки.
   ===================================================================== */
.lts-enc { --neon: #ff2a1f; --neon-soft: rgba(255,42,31,.55); --glow: 0 0 6px rgba(255,42,31,.65), 0 0 18px rgba(255,42,31,.35); }
.enc { max-width: 1440px; margin: 0 auto; padding: 18px var(--rail) 72px; }
.enc-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 20px; padding: 10px 14px; border: 1px solid var(--neon-soft); border-bottom: 0; background: linear-gradient(180deg, rgba(255,42,31,.10), rgba(255,42,31,.02)); font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; color: var(--ash); box-shadow: inset 0 0 18px rgba(255,42,31,.08); }
.enc-path i { font-style: normal; color: var(--neon); margin: 0 8px; }
.enc-path b { color: var(--bone); font-weight: 500; }
.enc-path em { font-style: normal; color: var(--neon); text-shadow: var(--glow); }
.enc-cur { display: inline-block; width: 8px; height: 13px; margin-left: 6px; vertical-align: -2px; background: var(--neon); box-shadow: var(--glow); animation: encBlink 1.1s steps(1) infinite; text-decoration: none; }
@keyframes encBlink { 50% { opacity: 0; } }
.enc-stat { display: inline-flex; align-items: center; gap: 8px; color: var(--dim); }
.enc-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--neon); box-shadow: var(--glow); animation: encBlink 2.4s steps(1) infinite; }

.enc-body { display: grid; grid-template-columns: 280px minmax(0, 1fr); border: 1px solid var(--neon-soft); box-shadow: 0 0 0 1px rgba(255,42,31,.08), 0 0 40px rgba(255,42,31,.12), inset 0 0 60px rgba(255,42,31,.05); background: #060102; min-height: 70vh; }

/* ---------- индекс ---------- */
.enc-nav { border-right: 1px solid var(--neon-soft); background: rgba(12,2,4,.9); }
.enc-idx { display: none; width: 100%; padding: 14px 16px; border: 0; border-bottom: 1px solid var(--neon-soft); background: transparent; color: var(--neon); font-family: var(--f-mono); font-size: 12px; letter-spacing: .2em; text-align: left; text-shadow: var(--glow); cursor: pointer; }
.enc-idx i { float: right; font-style: normal; transition: transform .2s; }
.enc-list { position: sticky; top: calc(var(--top-h) + 8px); max-height: calc(100vh - var(--top-h) - 24px); overflow: auto; padding: 10px 0 18px; scrollbar-width: thin; scrollbar-color: rgba(255,42,31,.5) transparent; }
.enc-q { display: flex; align-items: center; gap: 8px; margin: 2px 12px 8px; padding: 8px 10px; border: 1px solid rgba(255,42,31,.35); background: #0b0204; }
.enc-q span { color: var(--neon); font-family: var(--f-mono); text-shadow: var(--glow); }
.enc-q input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--bone); font-family: var(--f-mono); font-size: 12px; letter-spacing: .06em; }
.enc-q input::placeholder { color: var(--dim); }
.enc-q:focus-within { border-color: var(--neon); box-shadow: var(--glow); }
.n-h { margin: 14px 16px 6px; font-family: var(--f-mono); font-size: 10px; letter-spacing: .22em; color: var(--dim); }
.n-it { display: flex; align-items: baseline; gap: 10px; width: 100%; padding: 6px 16px; border: 0; border-left: 2px solid transparent; background: transparent; color: var(--ash); font: inherit; text-align: left; cursor: pointer; transition: background .15s, color .15s; }
.n-it i, .n-it b { flex: none; font-family: var(--f-mono); font-style: normal; font-weight: 500; font-size: 11.5px; letter-spacing: .08em; color: var(--neon); opacity: .8; }
.n-it.el b { min-width: 84px; }
.n-it span { font-size: 13px; line-height: 1.3; }
.n-it.ch span { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .1em; }
.n-it[hidden], .n-h[hidden] { display: none; }
@media (hover: hover) { .n-it:hover { background: rgba(255,42,31,.08); color: var(--bone); } }
.n-it.on { border-left-color: var(--neon); background: linear-gradient(90deg, rgba(255,42,31,.2), rgba(255,42,31,0)); color: var(--bone); }
.n-it.on i, .n-it.on b { opacity: 1; text-shadow: var(--glow); }
.n-none { margin: 12px 16px; font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; color: var(--dim); }

/* ---------- экран ---------- */
.enc-scr { position: relative; min-width: 0; overflow: hidden; }
.enc-scr::before { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 3; background: repeating-linear-gradient(0deg, rgba(0,0,0,.18) 0 1px, transparent 1px 3px); mix-blend-mode: multiply; }
.enc-scr::after { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 3; box-shadow: inset 0 0 120px rgba(0,0,0,.75); }
.enc-in { position: relative; padding: clamp(18px, 2.6vw, 34px); }
.enc-in.boot { animation: encBoot .45s var(--ease); }
@keyframes encBoot { 0% { opacity: 0; filter: brightness(2.2) blur(2px); transform: translateY(6px); } 40% { opacity: .8; } 100% { opacity: 1; filter: none; transform: none; } }
.e-head { margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px dashed rgba(255,42,31,.35); }
.e-k, .e-k2 { display: block; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .2em; color: var(--neon); margin: 0 0 10px; }
.e-k2 { margin: 22px 0 10px; color: var(--dim); }
.e-t { font-family: var(--f-disp); font-weight: 600; font-size: clamp(30px, 4.4vw, 60px); line-height: .98; letter-spacing: .04em; margin: 0 0 10px; color: #ffd8d2; text-shadow: 0 0 2px #fff2ee, 0 0 10px rgba(255,42,31,.9), 0 0 28px rgba(255,42,31,.55); }
.e-sub { margin: 0; max-width: 760px; color: var(--ash); font-size: 15px; line-height: 1.6; }
.e-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.e-pic { position: relative; display: block; width: 100%; padding: 0; margin: 0; border: 1px solid var(--neon-soft); background: #080203; cursor: zoom-in; overflow: hidden; box-shadow: 0 0 22px rgba(255,42,31,.12); }
.e-pic img { display: block; width: 100%; height: auto; }
.e-pic span, .ov-pic span { position: absolute; right: 8px; bottom: 8px; padding: 4px 8px; font-family: var(--f-mono); font-size: 10px; letter-spacing: .16em; color: var(--bone); background: rgba(5,1,2,.8); border: 1px solid var(--neon-soft); }
.e-pic.ph { aspect-ratio: 16 / 10; display: flex; align-items: center; justify-content: center; cursor: default; background: repeating-linear-gradient(45deg, rgba(255,72,60,.05) 0 2px, transparent 2px 12px), #080203; }
.e-pic.ph span { position: static; border: 0; background: none; font-size: 22px; color: var(--dim); }
.e-dl { display: grid; gap: 0; margin: 0; border: 1px solid rgba(255,42,31,.28); }
.e-dl > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; padding: 9px 12px; border-bottom: 1px solid rgba(255,42,31,.14); }
.e-dl > div:last-child { border-bottom: 0; }
.e-dl dt { font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--dim); padding-top: 2px; }
.e-dl dd { margin: 0; font-size: 14px; color: var(--bone); line-height: 1.4; }
.e-dl.wide > div { grid-template-columns: 170px minmax(0, 1fr); }
.e-txt { margin: 16px 0 0; color: var(--text); font-size: 14.5px; line-height: 1.6; }
.e-3d { margin-top: 16px; box-shadow: var(--glow); }
.lts-chip.on { border-color: var(--neon); color: #fff; background: rgba(255,42,31,.18); box-shadow: var(--glow); }
.e-pn { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 28px; padding-top: 14px; border-top: 1px dashed rgba(255,42,31,.35); font-family: var(--f-mono); }
.e-pn button { border: 1px solid rgba(255,42,31,.35); background: transparent; color: var(--bone); font: inherit; font-size: 11.5px; letter-spacing: .12em; padding: 9px 12px; cursor: pointer; }
@media (hover: hover) { .e-pn button:hover { border-color: var(--neon); box-shadow: var(--glow); } }
.e-pn span { font-size: 10px; letter-spacing: .2em; color: var(--dim); }
.ov-pic { position: relative; display: block; width: 100%; padding: 0; margin: 0 0 18px; border: 1px solid var(--neon-soft); background: #080203; cursor: zoom-in; overflow: hidden; aspect-ratio: 2.4 / 1; }
.ov-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ov-fam { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ov-fam button, .ov-ch button { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border: 1px solid rgba(255,42,31,.3); background: rgba(255,42,31,.03); color: var(--ash); font: inherit; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.ov-fam b { font-family: var(--f-disp); font-size: 26px; color: var(--neon); text-shadow: var(--glow); line-height: 1; }
.ov-fam span { font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; color: var(--bone); }
.ov-fam em { font-style: normal; font-size: 12.5px; color: var(--dim); }
.ov-ch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ov-ch button { flex-direction: row; align-items: baseline; gap: 12px; font-family: var(--f-mono); font-size: 12px; letter-spacing: .1em; color: var(--bone); }
.ov-ch i { font-style: normal; color: var(--neon); }
@media (hover: hover) { .ov-fam button:hover, .ov-ch button:hover { border-color: var(--neon); box-shadow: var(--glow); } }
.lts-enc .lts-stats { max-width: none; margin-bottom: 0; }
.lts-enc .lts-x { border-color: rgba(255,42,31,.3); }
.lts-enc .lts-city { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lts-enc .lts-shot.s3 { grid-column: 1 / -1; }
.lts-enc .lts-build { grid-template-columns: 1fr; }
.lts-enc .lts-phases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lts-enc .lts-foot { margin-top: 28px; }

/* 3D-стенд: постер-рендер и кнопка запуска; сцена грузится только по нажатию */
.lts-n-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; filter: saturate(.8); transition: opacity .6s; }
.lts-n.live .lts-n-poster { opacity: 0; }
.lts-n-load { flex-direction: column; gap: 12px; pointer-events: auto; }
.lts-n-load em { font-style: normal; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .16em; color: var(--ash); }
.lts-n-load .lts-btn { box-shadow: var(--glow); }
.lts-n.live .lts-n-load, .lts-n.ready .lts-n-load { opacity: 0; pointer-events: none; }
.lts-n-stage canvas { position: relative; z-index: 1; }
.lts-n-load { z-index: 2; }

@media (max-width: 980px) {
  .enc { padding-top: 10px; }
  .enc-body { grid-template-columns: 1fr; }
  .enc-nav { border-right: 0; border-bottom: 1px solid var(--neon-soft); }
  .enc-idx { display: block; }
  .enc-list { display: none; position: static; max-height: 60vh; }
  .idx-open .enc-list { display: block; }
  .idx-open .enc-idx i { transform: rotate(180deg); }
  .e-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .enc-top { font-size: 10px; letter-spacing: .1em; }
  .enc-stat { display: none; }
  .ov-fam { grid-template-columns: 1fr 1fr; }
  .ov-ch, .lts-enc .lts-city, .lts-enc .lts-phases { grid-template-columns: 1fr; }
  .e-dl > div, .e-dl.wide > div { grid-template-columns: 1fr; gap: 2px; }
  .e-pn span { display: none; }
}
@media (prefers-reduced-motion: reduce) { .enc-in.boot, .enc-cur, .enc-dot { animation: none; } }

/* =====================================================================
   ШАПКА: авторежим и общий вид 3D · АВТОРЕЖИМ ЭНЦИКЛОПЕДИИ — бегущий шрифт, красный ретрофутуризм
   ===================================================================== */
.enc-acts { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.enc-b { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid rgba(255,42,31,.45); background: rgba(255,42,31,.04); color: var(--bone); font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .16em; cursor: pointer; transition: border-color .15s, box-shadow .15s, background .15s; }
.enc-b i { font-style: normal; color: var(--neon); text-shadow: var(--glow); }
.enc-b b { font-weight: 500; color: var(--ash); }
.enc-b[aria-pressed="true"] b { color: #ffd8d2; text-shadow: var(--glow); }
.enc-b[aria-pressed="true"], .auto-on .enc-b[data-go="auto"] { border-color: var(--neon); background: rgba(255,42,31,.16); box-shadow: var(--glow); }
@media (hover: hover) { .enc-b:hover { border-color: var(--neon); box-shadow: var(--glow); } }
html[data-lts3d="red"] .lts-n-poster { filter: grayscale(1) contrast(1.3) brightness(.8) sepia(1) hue-rotate(-48deg) saturate(6); }

.au-go { display: flex; align-items: center; gap: 16px; width: 100%; margin: 0 0 6px; padding: 16px 18px; border: 1px solid var(--neon); background: linear-gradient(90deg, rgba(255,42,31,.18), rgba(255,42,31,.03)); color: var(--bone); font: inherit; text-align: left; cursor: pointer; box-shadow: var(--glow); }
.au-go > i { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--neon); font-style: normal; color: var(--neon); text-shadow: var(--glow); }
.au-go span { display: flex; flex-direction: column; gap: 4px; }
.au-go b { font-family: var(--f-mono); font-weight: 500; font-size: 13px; letter-spacing: .18em; color: #ffd8d2; text-shadow: var(--glow); }
.au-go em { font-style: normal; font-size: 12.5px; color: var(--ash); }

.au { position: relative; }
.au-hud { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .2em; color: var(--dim); }
.au-rec { display: inline-flex; align-items: center; gap: 8px; color: var(--neon); text-shadow: var(--glow); }
.au-rec i { width: 8px; height: 8px; border-radius: 50%; background: var(--neon); box-shadow: var(--glow); animation: encBlink 1s steps(1) infinite; }
.auto-paused .au-rec i { animation: none; opacity: .35; }
.au-bar { position: relative; flex: 1; height: 2px; background: rgba(255,42,31,.18); }
.au-bar i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--neon); box-shadow: var(--glow); transition: width .12s linear; }
.au-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 26px; align-items: start; }
.au-pic { position: relative; margin: 0; aspect-ratio: 4 / 3; border: 1px solid var(--neon-soft); background: #070102; overflow: hidden; box-shadow: 0 0 30px rgba(255,42,31,.18), inset 0 0 40px rgba(0,0,0,.8); }
.au-pic img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1) contrast(1.35) brightness(.82) sepia(1) hue-rotate(-48deg) saturate(6); animation: auPan 14s ease-in-out infinite alternate; }
@keyframes auPan { from { transform: scale(1.04) translate(-1%, -1%); } to { transform: scale(1.12) translate(1.5%, 1%); } }
.au-pic::before { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: repeating-linear-gradient(0deg, rgba(0,0,0,.32) 0 1px, transparent 1px 3px), radial-gradient(ellipse at center, transparent 45%, rgba(10,0,2,.75)); }
.au-scan { position: absolute; left: 0; right: 0; top: -20%; height: 18%; z-index: 2; pointer-events: none; background: linear-gradient(180deg, transparent, rgba(255,60,40,.16), transparent); animation: auScan 4.5s linear infinite; }
@keyframes auScan { to { top: 110%; } }
.au-pic figcaption { position: absolute; left: 10px; bottom: 10px; z-index: 3; padding: 4px 8px; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .18em; color: #ffd8d2; background: rgba(8,0,2,.75); border: 1px solid var(--neon-soft); text-shadow: var(--glow); }
.au-ph { display: grid; place-items: center; height: 100%; font-family: var(--f-disp); font-size: 40px; color: var(--dim); }
.au-txt { min-width: 0; font-family: var(--f-mono); }
.au-k { margin: 0 0 10px; font-size: 10.5px; letter-spacing: .2em; color: var(--neon); }
.au-t { margin: 0 0 6px; font-family: var(--f-disp); font-weight: 600; font-size: clamp(30px, 4vw, 54px); line-height: 1; letter-spacing: .04em; color: #ffd8d2; text-shadow: 0 0 2px #fff2ee, 0 0 10px rgba(255,42,31,.9), 0 0 28px rgba(255,42,31,.55); }
.au-sub { margin: 0 0 16px; font-size: 13px; letter-spacing: .12em; color: var(--ash); text-transform: uppercase; }
.au-dl { margin: 0 0 6px; border: 1px solid rgba(255,42,31,.28); }
.au-dl > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; padding: 7px 12px; border-bottom: 1px solid rgba(255,42,31,.14); }
.au-dl > div:last-child { border-bottom: 0; }
.au-dl dt { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--dim); }
.au-dl dd { margin: 0; font-size: 12.5px; color: var(--bone); line-height: 1.45; }
.au-h { margin: 16px 0 6px; font-size: 10.5px; letter-spacing: .22em; color: var(--neon); text-shadow: var(--glow); }
.au-p { margin: 0; font-family: var(--f-body, inherit); font-size: 14px; line-height: 1.6; color: var(--text); }
.tw-h { color: transparent; text-shadow: none; }
.tw-on .tw-v::after { content: ''; display: inline-block; width: .55em; height: 1em; margin-left: 2px; vertical-align: -.12em; background: var(--neon); box-shadow: var(--glow); animation: encBlink .7s steps(1) infinite; }
.au-ctl { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; padding-top: 14px; border-top: 1px dashed rgba(255,42,31,.35); }
.au-ctl button { min-width: 44px; padding: 9px 12px; border: 1px solid rgba(255,42,31,.4); background: transparent; color: var(--bone); font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; cursor: pointer; }
.au-ctl [data-au="open"] { margin-left: auto; border-color: var(--neon); color: #ffd8d2; }
@media (hover: hover) { .au-ctl button:hover { border-color: var(--neon); box-shadow: var(--glow); } }
.au-tick { margin: 18px calc(-1 * clamp(18px, 2.6vw, 34px)) calc(-1 * clamp(18px, 2.6vw, 34px)); padding: 9px 0; border-top: 1px solid var(--neon-soft); background: rgba(255,42,31,.06); overflow: hidden; font-family: var(--f-mono); font-size: 11px; letter-spacing: .12em; color: var(--ash); white-space: nowrap; }
.au-tick-in { display: inline-flex; animation: auTick 140s linear infinite; }
.au-tick span { padding: 0 26px; border-right: 1px solid rgba(255,42,31,.3); }
.au-tick b { font-weight: 500; color: var(--neon); text-shadow: var(--glow); margin-right: 8px; }
@keyframes auTick { to { transform: translateX(-50%); } }
.auto-paused .au-tick-in, .auto-paused .au-pic img { animation-play-state: paused; }
@media (max-width: 980px) {
  .au-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .enc-acts { width: 100%; }
  .au-dl > div { grid-template-columns: 1fr; gap: 2px; }
  .au-ctl [data-au="open"] { margin-left: 0; }
  .au-go em { display: none; }
}
@media (prefers-reduced-motion: reduce) { .au-pic img, .au-scan, .au-tick-in, .au-rec i, .tw-on .tw-v::after { animation: none; } }

/* 3D-деталь элемента: блок под карточкой, размеры — подписи у размерных линий */
.lts-n.lts-part { margin-top: 18px; }
.lts-p-dims { opacity: 1; z-index: 3; }
.lts-p-dims span { position: absolute; left: 0; top: 0; padding: 2px 6px; font: 600 11px/1.2 var(--f-mono, monospace); letter-spacing: .08em; color: #ffd2c4; background: rgba(20, 6, 4, .78); border: 1px solid rgba(255, 90, 60, .55); white-space: nowrap; transition: opacity .2s; }

/* =====================================================================
   ТЕРМИНАЛ LTS — единая консоль: панель инструментов, экран, клавиатура проекта
   ===================================================================== */
.lts-con { padding: calc(var(--top-h) + 14px) var(--rail) 40px; }
.con { max-width: 1320px; margin: 0 auto; border: 1px solid var(--line-strong); background: linear-gradient(180deg, #0b0405, #050102 60%); box-shadow: 0 0 0 4px #0a0304, 0 0 0 5px var(--line), 0 30px 80px rgba(0,0,0,.6); }
.con .ic { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; flex: none; }

/* панель инструментов */
.con-bar { display: flex; align-items: center; gap: 14px; padding: 10px 14px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, rgba(255,42,31,.05), transparent); }
.con-id { display: flex; align-items: center; gap: 8px; font-family: var(--f-mono); font-size: 12px; letter-spacing: .2em; color: var(--bone); white-space: nowrap; }
.con-led { width: 7px; height: 7px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 8px var(--signal); animation: con-led 2.4s steps(2) infinite; }
@keyframes con-led { 50% { opacity: .35; } }
.con-tools { display: flex; gap: 2px; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.con-tools::-webkit-scrollbar { display: none; }
.ct { display: flex; align-items: center; gap: 8px; padding: 8px 12px; background: transparent; border: 1px solid transparent; color: var(--dim); font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .16em; cursor: pointer; white-space: nowrap; transition: color .2s, border-color .2s, background .2s; }
.ct.on { color: var(--bone); border-color: var(--line-strong); background: rgba(255,42,31,.08); }
.ct.on .ic { color: var(--signal); }
@media (hover: hover) { .ct:hover { color: var(--bone); } }
.con-mode { display: flex; border: 1px solid var(--line-strong); }
.con-ed { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; font: inherit; font-size: 10px; letter-spacing: .12em; color: var(--void); background: var(--signal); border: 1px solid var(--signal); cursor: pointer; border-radius: 0; }
.con-ed[hidden] { display: none; }
.con-ed svg { width: 15px; height: 15px; }
@media (hover: hover) { .con-ed:hover { background: var(--bone); border-color: var(--bone); } }
@media (max-width: 640px) { .con-ed span { display: none; } }
.con-fs { display: inline-grid; place-items: center; width: 34px; height: 30px; padding: 0; color: var(--ash); background: transparent; border: 1px solid var(--line-strong); cursor: pointer; border-radius: 0; }
.con-fs svg { width: 16px; height: 16px; }
.con-fs[aria-pressed="true"] { color: var(--void); background: var(--signal); border-color: var(--signal); }
@media (hover: hover) { .con-fs:hover { color: var(--bone); border-color: var(--signal); } }
.con-rot { display: none; }
@media (orientation: portrait) and (max-width: 640px) {
  .con-rot { display: flex; align-items: center; gap: 10px; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 40; padding: 10px 12px; font-size: 10px; letter-spacing: .12em; color: var(--bone); background: rgba(11, 5, 5, .92); border: 1px solid var(--signal); pointer-events: none; animation: conRot 6s ease forwards; }
  .con-rot i { width: 18px; height: 12px; border: 1.5px solid var(--signal); border-radius: 2px; transform: rotate(90deg); animation: conRotI 1.6s ease-in-out infinite; }
}
@keyframes conRot { 0%, 85% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } }
@keyframes conRotI { 0%, 30% { transform: rotate(90deg); } 60%, 100% { transform: rotate(0deg); } }
.con-mode button { display: flex; align-items: center; gap: 6px; padding: 7px 10px; background: transparent; border: 0; color: var(--dim); font-family: var(--f-mono); font-size: 10px; letter-spacing: .16em; cursor: pointer; }
.con-mode button + button { border-left: 1px solid var(--line-strong); }
.con-mode button[aria-pressed="true"] { color: var(--void); background: var(--signal); }
.con-mode .ic { width: 15px; height: 15px; }

/* экран */
.con-scr { position: relative; min-height: min(72vh, 680px); border-bottom: 1px solid var(--line); overflow: hidden; }
.con-glass { position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0 1px, transparent 1px 3px), radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,.45)); }
.con-scr.boot .con-in { animation: con-boot .45s ease-out; }
@keyframes con-boot { from { opacity: 0; filter: brightness(1.8) blur(2px); } to { opacity: 1; filter: none; } }
.con-in { height: 100%; }

/* заставка */
.cs { min-height: min(72vh, 680px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px 20px; background: radial-gradient(ellipse at 50% 45%, rgba(143,15,22,.22), transparent 62%); }
.cs-cube .ic { width: 84px; height: 84px; stroke: var(--signal); stroke-width: .9; filter: drop-shadow(0 0 10px rgba(255,42,31,.6)); animation: cs-rot 9s linear infinite; }
@keyframes cs-rot { 0% { transform: rotateY(0) rotateX(12deg); } 100% { transform: rotateY(360deg) rotateX(12deg); } }
.cs-k { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .24em; color: var(--signal); margin: 22px 0 10px; }
.cs-t { font-family: var(--f-disp); font-weight: 600; font-size: clamp(30px, 5.4vw, 64px); line-height: .98; letter-spacing: .04em; color: var(--bone); margin: 0 0 16px; }
.cs-sub { max-width: 560px; color: var(--ash); font-size: 15px; line-height: 1.55; margin: 0 0 26px; }
.cs-stats { display: grid; grid-template-columns: repeat(4, auto); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.cs-stats > div { background: #070203; padding: 12px 18px; }
.cs-stats b { display: block; font-family: var(--f-disp); font-size: 20px; color: var(--bone); font-weight: 600; white-space: nowrap; }
.cs-stats span { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .12em; color: var(--dim); text-transform: uppercase; }
.cs-hint { margin: 28px 0 0; font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .18em; color: var(--amber); }
.cs-hint i { display: inline-block; animation: cs-hint 1.4s ease-in-out infinite; font-style: normal; }
@keyframes cs-hint { 50% { transform: translateY(4px); } }

/* 3D + текст */
.cv { display: grid; grid-template-columns: minmax(0, 1fr) 360px; min-height: min(72vh, 680px); }
.cv-3d { border: 0; border-right: 1px solid var(--line); display: flex; flex-direction: column; min-width: 0; }
.cv-3d .lts-n-stage { flex: 1; height: auto; min-height: 420px; }
.cv-3d .lts-n-bar { padding: 10px 14px; }
.cv-spin { width: 26px; height: 26px; border: 1px solid var(--line-strong); border-top-color: var(--signal); border-radius: 50%; animation: cv-spin .9s linear infinite; }
@keyframes cv-spin { to { transform: rotate(360deg); } }
.cv-info { padding: 22px 22px 18px; overflow-y: auto; max-height: min(72vh, 680px); display: flex; flex-direction: column; }
.cv-k { font-family: var(--f-mono); font-size: 10px; letter-spacing: .18em; color: var(--signal); margin: 0 0 10px; }
.cv-t { font-family: var(--f-disp); font-weight: 600; font-size: clamp(24px, 2.6vw, 34px); letter-spacing: .03em; color: var(--bone); margin: 0 0 4px; line-height: 1.05; }
.cv-n { font-size: 15px; color: var(--ash); margin: 0 0 10px; }
.cv-size { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .1em; color: var(--amber); margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.cv-p { font-size: 14.5px; line-height: 1.62; color: var(--text); margin: 0 0 14px; }
.cv-go { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 16px; }
.cv-link { display: flex; align-items: center; gap: 8px; padding: 9px 12px; background: transparent; border: 1px solid var(--line-strong); color: var(--bone); font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em; cursor: pointer; }
.cv-link .ic { width: 16px; height: 16px; color: var(--signal); }
@media (hover: hover) { .cv-link:hover { border-color: var(--signal); background: rgba(255,42,31,.1); } }
.cv-pn { margin-top: auto; display: flex; justify-content: space-between; gap: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.cv-pn button { background: transparent; border: 0; color: var(--dim); font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .12em; cursor: pointer; padding: 6px 0; }
@media (hover: hover) { .cv-pn button:hover { color: var(--bone); } }

/* архив концепт-арта */
.ca { display: grid; grid-template-columns: minmax(0, 1fr) 360px; min-height: min(72vh, 680px); }
.ca-pic { position: relative; margin: 0; background: #050102; border-right: 1px solid var(--line); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.ca-pic img { max-width: 100%; max-height: min(72vh, 680px); object-fit: contain; opacity: 0; transition: opacity .6s; cursor: zoom-in; }
.ca-pic img.on { opacity: 1; }
.ca-scan { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 0 46%, rgba(255,42,31,.08) 50%, transparent 54%); background-size: 100% 200%; animation: ca-scan 5s linear infinite; }
@keyframes ca-scan { from { background-position: 0 -100%; } to { background-position: 0 100%; } }
.ca-txt { padding: 22px; display: flex; flex-direction: column; }
.ca-k { font-family: var(--f-mono); font-size: 10px; letter-spacing: .18em; color: var(--signal); margin: 0 0 10px; }
.ca-t { font-family: var(--f-disp); font-weight: 600; font-size: clamp(22px, 2.4vw, 30px); color: var(--bone); margin: 0 0 4px; letter-spacing: .03em; }
.ca-sub { color: var(--ash); font-size: 14px; margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.ca-p { font-size: 14.5px; line-height: 1.62; color: var(--text); margin: 0; min-height: 7.5em; }
.ca-p::after { content: '▌'; color: var(--signal); animation: con-led 1s steps(2) infinite; margin-left: 2px; }
.ca-ctl { display: flex; align-items: center; gap: 4px; margin-top: auto; padding-top: 16px; }
.ca-ctl button { width: 34px; height: 30px; background: transparent; border: 1px solid var(--line-strong); color: var(--bone); cursor: pointer; font-size: 11px; }
.ca-n { font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em; color: var(--dim); margin-left: 8px; }
.ca-bar { flex: 1; height: 2px; background: var(--line); margin-left: 10px; }
.ca-bar i { display: block; height: 100%; width: 0; background: var(--signal); }
.ca-3d { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 14px; padding: 14px; background: transparent; border: 1px solid var(--signal); color: var(--bone); cursor: pointer; }
.ca-3d .ic { width: 26px; height: 26px; color: var(--signal); }
.ca-3d b { font-family: var(--f-disp); font-size: 20px; letter-spacing: .2em; font-weight: 600; }
@media (hover: hover) { .ca-3d:hover { background: rgba(255,42,31,.12); } }

/* разрез, принцип, стройка — внутри экрана */
.cx { padding: 14px; }
.cp { padding: 26px; max-width: 1040px; }
.cp .lts-facts, .cp .lts-zones, .cp .lts-build, .cp .lts-phases { margin: 18px 0; }

/* клавиатура */
.con-keys { padding: 12px 14px 14px; display: grid; gap: 6px; background: linear-gradient(180deg, #080304, #050102); }
.ck-row { display: flex; gap: 4px; align-items: stretch; overflow-x: auto; scrollbar-width: none; }
.ck-row::-webkit-scrollbar { display: none; }
.ck-h { flex: none; width: 54px; display: flex; align-items: center; font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .16em; color: var(--signal); }
.ck { flex: none; min-width: 64px; padding: 7px 8px 8px; background: linear-gradient(180deg, #1a0d0d, #0d0607); border: 1px solid #2c1615; border-bottom-color: #070203; box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 2px 0 #050102; color: var(--ash); font-family: var(--f-mono); font-size: 10px; letter-spacing: .08em; cursor: pointer; text-align: center; transition: color .15s, background .15s, transform .08s; }
.ck:active { transform: translateY(1px); box-shadow: inset 0 1px 0 rgba(255,255,255,.03); }
.ck.scn { min-width: 84px; color: var(--bone); }
.ck.on { color: var(--void); background: linear-gradient(180deg, #ff4a3c, var(--signal)); border-color: var(--signal); box-shadow: 0 0 14px rgba(255,42,31,.45); }
@media (hover: hover) { .ck:hover:not(.on) { color: var(--bone); border-color: var(--line-strong); } }

/* схемный режим: без надписей поверх модели */
html[data-lts3d="red"] .lts-n-labels, html[data-lts3d="red"] .lts-n-st { visibility: hidden; }

@media (max-width: 960px) {
  .lts-con { padding: calc(var(--top-h) + 6px) 8px 24px; }
  .con-bar { flex-wrap: wrap; gap: 8px; }
  .con-tools { order: 3; flex-basis: 100%; }
  .con-mode { margin-left: auto; }
  .ct span { display: none; }
  .ct.on span { display: inline; }
  .cv, .ca { grid-template-columns: 1fr; }
  .cv-3d { border-right: 0; border-bottom: 1px solid var(--line); }
  .cv-3d .lts-n-stage { min-height: 54vh; }
  .cv-info { max-height: none; }
  .ca-pic { border-right: 0; border-bottom: 1px solid var(--line); }
  .cs-stats { grid-template-columns: repeat(2, auto); }
  .ck { min-width: 58px; }
  .ck-h { width: 40px; }
}
/* под 3D-экраном — только кнопки: строка статуса не показывается */
.lts-con .lts-n-st { display: none; }
.lts-con .lts-n-bar { justify-content: flex-end; }

/* ---------- редактор карты и зданий (lts-editor.js): полноэкранное окно поверх терминала ---------- */
html.led-open, html.led-open body { overflow: hidden; }
.lted { position: fixed; inset: 0; z-index: 2147483000; display: grid; grid-template-columns: 252px minmax(0, 1fr) 272px; grid-template-rows: auto minmax(0, 1fr); background: #070303; color: var(--bone); font-family: var(--f-mono); font-size: 12px; }
.led-top { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-bottom: 1px solid var(--line-strong); background: #0d0606; min-width: 0; }
.led-logo { display: flex; align-items: center; gap: 8px; letter-spacing: .16em; color: var(--signal); white-space: nowrap; font-size: 11px; }
.led-logo i { width: 8px; height: 8px; background: var(--signal); box-shadow: 0 0 10px var(--signal); }
.led-modes { display: flex; border: 1px solid var(--line-strong); }
.led-modes button, .led-t, .led-b, .led-close, .led-help { font: inherit; letter-spacing: .1em; color: var(--ash); background: transparent; border: 0; cursor: pointer; border-radius: 0; }
.led-modes button { padding: 7px 14px; }
.led-modes button.on { background: var(--signal); color: var(--void); }
.led-bar { flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.led-bar::-webkit-scrollbar { display: none; }
.led-tools { display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.led-t { padding: 6px 9px; border: 1px solid var(--line); font-size: 10.5px; }
.led-t.on { border-color: var(--signal); color: var(--bone); background: rgba(255,42,31,.16); }
.led-t kbd { font: inherit; font-size: 9px; color: var(--dim); margin-left: 3px; }
.led-v { padding: 0 6px; color: #ffb02e; font-size: 10.5px; letter-spacing: .08em; }
.led-sep { width: 1px; height: 22px; background: var(--line-strong); margin: 0 4px; }
.led-close, .led-help { width: 32px; height: 32px; border: 1px solid var(--line-strong); color: var(--bone); font-size: 14px; }
@media (hover: hover) { .led-t:hover, .led-b:hover, .led-modes button:hover, .led-close:hover, .led-help:hover { color: var(--bone); border-color: var(--signal); } }
.led-l, .led-r { overflow-y: auto; padding: 10px 10px 40px; background: #0b0505; scrollbar-width: thin; scrollbar-color: #4a1a12 transparent; }
.led-l { border-right: 1px solid var(--line); }
.led-r { border-left: 1px solid var(--line); }
.led-c { position: relative; min-width: 0; min-height: 0; }
.led-c canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: crosshair; touch-action: none; }
.led-hint { position: absolute; left: 12px; right: 12px; bottom: 10px; pointer-events: none; font-size: 10.5px; letter-spacing: .1em; color: #ffcf9a; text-shadow: 0 1px 6px #000; }
.led-toast { position: absolute; left: 50%; top: 14px; transform: translate(-50%, -8px); opacity: 0; transition: opacity .2s, transform .2s; padding: 8px 14px; border: 1px solid var(--signal); background: rgba(20,4,3,.92); color: var(--bone); letter-spacing: .1em; font-size: 11px; pointer-events: none; max-width: 80%; text-align: center; }
.led-toast.on { opacity: 1; transform: translate(-50%, 0); }
.led-load { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(7,3,3,.6); letter-spacing: .2em; color: var(--signal); }
.led-load[hidden] { display: none; }
.led-h { font-size: 10px; letter-spacing: .16em; color: var(--signal); margin: 14px 0 6px; }
.led-h:first-child { margin-top: 2px; }
.led-search, .led-name { width: 100%; box-sizing: border-box; font: inherit; color: var(--bone); background: #140808; border: 1px solid var(--line-strong); padding: 7px 8px; border-radius: 0; }
.led-cat details { border-bottom: 1px solid var(--line); }
.led-cat summary { cursor: pointer; padding: 7px 2px; font-size: 10.5px; letter-spacing: .12em; color: var(--ash); }
.led-it { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; width: 100%; text-align: left; font: inherit; color: var(--bone); background: transparent; border: 1px solid transparent; padding: 6px 7px; cursor: pointer; border-radius: 0; }
.led-it b { font-weight: 500; font-size: 11.5px; letter-spacing: .02em; }
.led-it i { font-style: normal; font-size: 9.5px; color: var(--dim); white-space: nowrap; }
.led-it.on { border-color: var(--signal); background: rgba(255,42,31,.12); }
@media (hover: hover) { .led-it:hover { border-color: var(--line-strong); } }
.led-tpl, .led-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.led-b { padding: 7px 6px; border: 1px solid var(--line-strong); font-size: 10px; text-align: center; }
.led-b.on { background: var(--signal); color: var(--void); border-color: var(--signal); }
.led-b.warn { border-color: #7a1a12; color: #ff8a7a; }
.led-row { display: flex; gap: 4px; margin: 4px 0; }
.led-row .led-b { flex: 1; }
.led-card { border: 1px solid var(--line); background: #100707; padding: 8px; }
.led-card > b { display: block; font-size: 12.5px; font-weight: 500; }
.led-card > span { display: block; font-size: 9.5px; color: var(--dim); margin-top: 3px; letter-spacing: .06em; }
.led-card dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; margin: 8px 0 0; }
.led-card dt { color: var(--dim); font-size: 10px; }
.led-card dd { margin: 0; text-align: right; font-size: 11px; }
.led-card label { display: flex; align-items: center; gap: 6px; margin: 4px 0; font-size: 11px; color: var(--ash); }
.led-card input[type=number] { width: 52px; font: inherit; color: var(--bone); background: #140808; border: 1px solid var(--line-strong); padding: 3px 5px; }
.led-warn { color: #ff8a7a; font-size: 10.5px; margin: 8px 0 0; letter-spacing: .04em; }
.led-ok { color: #ffcf9a; font-size: 10.5px; margin: 8px 0 0; }
.led-mut { color: var(--dim); font-size: 10.5px; line-height: 1.5; margin: 6px 0; }
.led-live:empty { display: none; }
.led-live { margin-bottom: 4px; }
.led-pend { border-color: var(--signal); box-shadow: 0 0 0 1px rgba(255, 74, 42, .18) inset; }
.led-pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 10px 0 6px; }
.led-pad button { font: inherit; font-size: 11px; letter-spacing: .06em; color: var(--bone); background: #160909; border: 1px solid var(--line-strong); padding: 9px 0; cursor: pointer; border-radius: 0; touch-action: manipulation; }
.led-pad button:active { background: var(--signal); color: var(--void); }
.led-fl { display: grid; grid-template-columns: 1fr 40px 44px 40px; align-items: center; gap: 4px; margin: 6px 0; font-size: 11px; letter-spacing: .08em; color: var(--bone); }
.led-fl button { font: inherit; font-size: 16px; color: var(--bone); background: #160909; border: 1px solid var(--line-strong); padding: 6px 0; cursor: pointer; border-radius: 0; touch-action: manipulation; }
.led-fl button:active { background: var(--signal); color: var(--void); }
.led-fl button[disabled] { opacity: .35; cursor: default; }
.led-fl b { text-align: center; font-size: 15px; color: var(--signal); }
.led-fl i { grid-column: 1 / -1; font-style: normal; opacity: .7; font-size: 10px; }
.led-fl input, .led-lenf input { width: 100%; box-sizing: border-box; font: inherit; font-size: 14px; text-align: center; color: var(--signal); background: #160909; border: 1px solid var(--line-strong); border-radius: 0; padding: 5px 2px; }
.led-lenf { display: flex; gap: 6px; align-items: center; margin: -2px 0 6px; padding: 0 10px; font-size: 10px; letter-spacing: .08em; color: var(--bone); opacity: .85; }
.led-lenf input { width: 72px; font-size: 12px; padding: 3px 2px; }
@media (hover: hover) { .led-pad button:hover { border-color: var(--signal); } }
.led-pad span { display: block; }
.led-pend .led-warn { padding: 6px 7px; border-left: 2px solid #ff4a2a; background: rgba(255, 60, 40, .08); }
.led-b[disabled] { opacity: .35; cursor: not-allowed; }
.led-cam { position: absolute; right: 10px; bottom: 10px; display: grid; grid-template-columns: repeat(3, 34px); gap: 3px; z-index: 3; }
.led-cam button { font: inherit; font-size: 12px; width: 34px; height: 30px; color: var(--ash); background: rgba(11, 5, 5, .82); border: 1px solid var(--line-strong); cursor: pointer; border-radius: 0; padding: 0; touch-action: manipulation; }
.led-cam button:active { background: var(--signal); color: var(--void); }
@media (hover: hover) { .led-cam button:hover { color: var(--bone); border-color: var(--signal); } }
.led-iss { display: grid; gap: 2px; max-height: 220px; overflow-y: auto; }
.led-iss button { text-align: left; font: inherit; font-size: 10px; color: var(--ash); background: #100707; border: 1px solid var(--line); padding: 5px 6px; cursor: pointer; border-radius: 0; }
.led-iss button b { color: var(--bone); font-weight: 500; }
.led-lib { display: grid; gap: 3px; margin-top: 6px; }
.led-libi { display: flex; border: 1px solid var(--line); }
.led-libi.on { border-color: var(--signal); }
.led-libi button { font: inherit; background: transparent; border: 0; color: var(--bone); cursor: pointer; padding: 6px 7px; border-radius: 0; }
.led-libi button:first-child { flex: 1; display: flex; justify-content: space-between; text-align: left; }
.led-libi button i { font-style: normal; color: var(--dim); font-size: 9.5px; }
.led-libi .x { color: var(--dim); border-left: 1px solid var(--line); }
.led-sl { display: block; margin: 8px 0; font-size: 10.5px; color: var(--ash); letter-spacing: .06em; }
.led-sl output { float: right; color: #ffb02e; }
.led-sl input { width: 100%; accent-color: var(--signal); margin-top: 4px; }
@media (max-width: 900px) {
  .lted { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr) auto auto; }
  .led-l, .led-r { max-height: 30vh; border: 0; border-top: 1px solid var(--line); }
  .led-c { order: 0; min-height: 50vh; }
  .led-logo { display: none; }
}
.led-ent { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; margin: 6px 0; font-size: 11px; letter-spacing: .08em; color: var(--bone); }
.led-ent select { font: inherit; font-size: 12px; color: var(--signal); background: #160909; border: 1px solid var(--line-strong); border-radius: 0; padding: 5px 4px; }

/* =====================================================================
   ТЕРМИНАЛ LTS v2 — компактная оболочка: верхняя панель разделов, бегущая строка телеметрии, рабочая область
   на всю высоту окна, строка пути внизу. Объёмные панели: фаска на углах, светлая кромка сверху, тень снизу,
   неоновая риска на активных элементах. Моноширинный текст, красный неон и янтарь.
   ===================================================================== */
.t2 { --n: #ff2a1f; --n2: #ffb02e; --n-soft: rgba(255,42,31,.45); --n-glow: 0 0 6px rgba(255,42,31,.7), 0 0 18px rgba(255,42,31,.35); --pane: linear-gradient(180deg, rgba(30,11,11,.94), rgba(11,4,5,.96)); --edge: rgba(255,90,70,.24); --cut: 10px;
  box-sizing: border-box; padding: var(--top-h) 0 0; height: 100dvh; min-height: 0; display: flex; flex-direction: column; overflow: hidden; background: radial-gradient(ellipse at 50% -20%, rgba(255,60,30,.12), transparent 55%), #050102; }
.page.active.t2 { display: flex; }
.t2 .ic { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; flex: none; }
.t2-app { flex: 1; min-height: 0; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; margin: 6px clamp(6px, 1vw, 14px) 8px; font-family: var(--f-mono); }

/* объёмная панель */
.t2-pane { position: relative; background: var(--pane); border: 1px solid var(--edge); clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  box-shadow: inset 0 1px 0 rgba(255,220,200,.07), inset 0 -2px 0 rgba(0,0,0,.55), inset 1px 0 0 rgba(255,140,110,.05), 0 14px 34px rgba(0,0,0,.5); }
.t2-pane::before { content: ''; position: absolute; left: 0; top: 0; width: 34px; height: 1px; background: var(--n); box-shadow: var(--n-glow); pointer-events: none; }
.t2-pane::after { content: ''; position: absolute; right: 0; bottom: 0; width: 34px; height: 1px; background: var(--n2); opacity: .6; pointer-events: none; }

/* верхняя панель */
.t2-top { display: flex; align-items: center; gap: 10px; padding: 6px 8px; background: linear-gradient(180deg, #170707, #0a0304); border: 1px solid var(--edge); box-shadow: inset 0 1px 0 rgba(255,210,190,.08), 0 6px 18px rgba(0,0,0,.5); clip-path: polygon(12px 0, 100% 0, 100% 100%, 0 100%, 0 12px); }
.t2-logo { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; font: 600 12px/1 var(--f-mono); letter-spacing: .22em; color: var(--bone); background: none; border: 0; cursor: pointer; white-space: nowrap; }
.t2-logo em { font-style: normal; font-size: 9px; letter-spacing: .3em; color: var(--n); text-shadow: var(--n-glow); }
.t2-led { width: 8px; height: 8px; border-radius: 50%; background: var(--n); box-shadow: var(--n-glow); animation: con-led 2.4s steps(2) infinite; }
.t2-nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; flex: 1; min-width: 0; max-width: 860px; }
.t2-nav::-webkit-scrollbar { display: none; }
.t2-tab { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 0; border-radius: 3px; height: 34px; padding: 0 12px; font: 500 10.5px/1 var(--f-mono); letter-spacing: .16em; color: var(--ash); white-space: nowrap; cursor: pointer;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.25)); border: 1px solid rgba(255,90,70,.16); box-shadow: inset 0 1px 0 rgba(255,220,200,.06), 0 2px 0 rgba(0,0,0,.6); transition: color .15s, border-color .15s, background .15s, transform .1s; }
.t2-tab kbd { font: inherit; font-size: 9px; color: var(--dim); padding: 1px 4px; border: 1px solid rgba(255,90,70,.2); }
.t2-tab::after { content: ''; position: absolute; left: 8px; right: 8px; bottom: -1px; height: 2px; background: var(--n); box-shadow: var(--n-glow); transform: scaleX(0); transition: transform .2s var(--ease); }
.t2-tab.on { color: #ffe4dc; border-color: var(--n-soft); background: linear-gradient(180deg, rgba(255,42,31,.2), rgba(60,6,6,.4)); }
.t2-tab.on::after { transform: scaleX(1); }
.t2-tab.on kbd { color: var(--n); border-color: var(--n-soft); }
.t2-tab:active { transform: translateY(1px); }
@media (hover: hover) { .t2-tab:hover { color: var(--bone); border-color: var(--n-soft); } }
.t2-tools { display: flex; align-items: center; gap: 6px; }
.t2-sw { display: flex; border: 1px solid rgba(255,90,70,.25); }
.t2-sw button { padding: 8px 10px; font: 500 10px/1 var(--f-mono); letter-spacing: .16em; color: var(--dim); background: transparent; border: 0; cursor: pointer; }
.t2-sw button[aria-pressed="true"] { color: #1a0505; background: var(--n); box-shadow: var(--n-glow); }
.t2-ib { display: inline-grid; place-items: center; min-width: 34px; height: 34px; padding: 0 8px; font: 500 14px/1 var(--f-mono); color: var(--ash); text-decoration: none; cursor: pointer;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.3)); border: 1px solid rgba(255,90,70,.22); box-shadow: inset 0 1px 0 rgba(255,220,200,.06), 0 2px 0 rgba(0,0,0,.6); }
.t2-ib.sm { min-width: 28px; height: 28px; font-size: 12px; }
.t2-ib.on, .t2-ib[aria-pressed="true"] { color: #1a0505; background: var(--n); border-color: var(--n); box-shadow: var(--n-glow); }
@media (hover: hover) { .t2-ib:hover { color: var(--bone); border-color: var(--n); } }
.t2-btn { height: 34px; padding: 0 14px; font: 600 10.5px/1 var(--f-mono); letter-spacing: .18em; color: #1a0505; background: linear-gradient(180deg, #ff5040, #d81c12); border: 1px solid #ff6a5a; box-shadow: var(--n-glow), inset 0 1px 0 rgba(255,255,255,.3); cursor: pointer; }

/* бегущая строка */
.t2-tick { overflow: hidden; height: 24px; margin: 4px 0; display: flex; align-items: center; border-top: 1px solid rgba(255,42,31,.25); border-bottom: 1px solid rgba(255,42,31,.25); background: linear-gradient(90deg, rgba(255,42,31,.12), rgba(255,42,31,.03) 30%, rgba(255,42,31,.03) 70%, rgba(255,42,31,.12)); font-size: 10.5px; letter-spacing: .14em; color: var(--ash); white-space: nowrap; mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.t2-tick-in { display: inline-flex; align-items: center; animation: t2Tick 90s linear infinite; }
.t2-tick span { padding: 0 18px; }
.t2-tick i { font-style: normal; color: var(--n); text-shadow: var(--n-glow); font-size: 8px; }
.t2-tick b { font-weight: 500; color: var(--n2); text-shadow: 0 0 8px rgba(255,176,46,.6); }
@keyframes t2Tick { to { transform: translateX(-50%); } }

/* рабочая область */
.t2-main { min-height: 0; position: relative; }
.t2-main.boot > * { animation: t2Boot .4s var(--ease); }
@keyframes t2Boot { from { opacity: 0; transform: translateY(6px); filter: brightness(1.8) saturate(.5); } }
.t2-foot { display: flex; align-items: center; gap: 14px; height: 24px; margin-top: 4px; padding: 0 10px; font-size: 10px; letter-spacing: .14em; color: var(--dim); border-top: 1px solid rgba(255,42,31,.2); }
.t2-path b { font-weight: 500; color: var(--bone); }
.t2-path { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.t2-cur { display: inline-block; width: 7px; height: 11px; margin-left: 4px; vertical-align: -1px; background: var(--n); box-shadow: var(--n-glow); animation: t2Cur 1s steps(2) infinite; }
@keyframes t2Cur { 50% { opacity: 0; } }
.t2-hint { margin-left: auto; }
.t2-clock { color: var(--n2); }
.t2-k { margin: 0 0 8px; font-size: 10.5px; letter-spacing: .22em; color: var(--n); text-shadow: var(--n-glow); }
.t2-h { margin: 14px 12px 6px; font-size: 9.5px; letter-spacing: .26em; color: var(--dim); }
.t2-h i { font-style: normal; color: var(--n); }

/* тело: рабочая область и боковые клавиши модератора */
.t2-body { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.t2-rail { display: flex; flex-direction: column; gap: 8px; width: 52px; }
.t2-rail[hidden] { display: none; }
.t2-rk { position: relative; flex: 0 1 200px; min-height: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 0 10px; cursor: pointer; color: var(--ash); font: 600 10px/1 var(--f-mono); letter-spacing: .26em;
  background: linear-gradient(90deg, #220b0a, #120506 70%, #0c0304); border: 1px solid rgba(255,90,70,.24); border-radius: 3px;
  box-shadow: inset 1px 1px 0 rgba(255,220,200,.1), inset -2px -3px 0 rgba(0,0,0,.6), 0 3px 0 #040101, 0 8px 16px rgba(0,0,0,.5); transition: transform .08s, border-color .15s, color .15s; }
.t2-rk .hm-led { top: 8px; left: 50%; right: auto; margin-left: -4px; }
.t2-rk .ic { width: 20px; height: 20px; color: var(--n2); filter: drop-shadow(0 0 5px rgba(255,176,46,.45)); }
.t2-rk b { writing-mode: vertical-rl; transform: rotate(180deg); font-weight: 600; }
.t2-rk em { margin-top: auto; padding: 2px 4px; font-style: normal; font-size: 8px; letter-spacing: .16em; color: #1a0505; background: var(--n2); }
.t2-rk:active { transform: translateY(2px); box-shadow: inset 1px 1px 0 rgba(255,220,200,.06), inset -1px -1px 0 rgba(0,0,0,.6), 0 1px 0 #040101; }
.t2-rk.on { color: #ffe4dc; border-color: var(--n); box-shadow: var(--n-glow), inset 1px 1px 0 rgba(255,220,200,.1); }
.t2-rk.on .hm-led { background: var(--n); box-shadow: var(--n-glow); }
@media (hover: hover) { .t2-rk:hover { color: var(--bone); border-color: var(--n-soft); } .t2-rk:hover .hm-led { background: var(--n2); box-shadow: 0 0 6px rgba(255,176,46,.8); } }

/* обзор: пульт — мини-экран и клавиши по сетке */
.t2-home { height: 100%; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 10px; }
.hm-scr { display: flex; flex-direction: column; gap: 10px; padding: 14px; min-height: 0; }
.hm-crt { position: relative; flex: 1; min-height: 160px; overflow: hidden; border-radius: 22px / 16px; background: #0a0302;
  box-shadow: inset 0 0 0 2px #000, inset 0 0 0 4px rgba(255,90,70,.16), inset 0 0 50px rgba(0,0,0,.9), 0 0 0 7px #140606, 0 0 0 8px rgba(255,90,70,.22), 0 0 0 12px #0a0304; margin: 10px; }
.hm-cv { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.hm-crt::after { content: ''; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; background: radial-gradient(ellipse at 28% 0%, rgba(255,230,200,.08), transparent 45%), radial-gradient(ellipse at 50% 50%, transparent 55%, rgba(0,0,0,.65)); }
.hm-ovl { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; justify-content: space-between; padding: 14px 20px 16px; pointer-events: none; }
.hm-top { display: flex; justify-content: space-between; margin: 0; font-size: 10.5px; letter-spacing: .24em; color: var(--n2); text-shadow: 0 0 8px rgba(255,176,46,.6); }
.hm-top b { font-weight: 500; }
.hm-rec { display: inline-flex; align-items: center; gap: 6px; color: var(--n); text-shadow: var(--n-glow); }
.hm-rec i { width: 7px; height: 7px; border-radius: 50%; background: var(--n); box-shadow: var(--n-glow); animation: t2Cur 1.2s steps(2) infinite; }
.hm-cap { margin: 0; }
.hm-cap b { display: block; font: 600 clamp(20px, 2.6vw, 36px)/1 var(--f-disp); letter-spacing: .04em; color: var(--bone); text-shadow: 0 0 18px rgba(255,42,31,.55); }
.hm-cap em { display: block; max-width: 560px; margin-top: 8px; font: 400 13.5px/1.5 var(--f-ui); font-style: normal; color: var(--text); text-shadow: 0 1px 6px #000; }
.hm-meters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.hm-m { min-width: 0; padding: 8px 10px 9px; background: #0b0303; border: 1px solid rgba(255,90,70,.2); box-shadow: inset 0 2px 7px rgba(0,0,0,.85); }
.hm-m span { display: block; font-size: 8.5px; letter-spacing: .2em; color: var(--dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hm-m b { font: 500 17px/1.3 var(--f-mono); color: var(--n2); text-shadow: 0 0 10px rgba(255,176,46,.5); }
.hm-m i { margin-left: 5px; font-style: normal; font-size: 10px; color: var(--ash); }
.hm-m i em { font-style: normal; }
.hm-m u { display: block; height: 4px; margin-top: 6px; background: repeating-linear-gradient(90deg, rgba(255,90,70,.16) 0 5px, transparent 5px 7px); }
.hm-m s { display: block; width: 50%; height: 100%; background: repeating-linear-gradient(90deg, var(--n) 0 5px, transparent 5px 7px); filter: drop-shadow(0 0 3px rgba(255,42,31,.8)); transition: width .9s var(--ease); }
.hm-deck { display: flex; flex-direction: column; gap: 10px; padding: 14px; min-height: 0; }
.hm-dh { display: flex; align-items: center; gap: 10px; margin: 0; padding-bottom: 9px; border-bottom: 1px dashed rgba(255,42,31,.35); font-size: 10px; letter-spacing: .26em; color: var(--bone); }
.hm-dh em { font-style: normal; color: var(--dim); }
.hm-lamps { display: flex; gap: 5px; margin-left: auto; }
.hm-lamps b { width: 7px; height: 7px; border-radius: 50%; background: #3a0d08; animation: hmLamp 2.4s steps(1) infinite; }
.hm-lamps b:nth-child(2) { animation-delay: .6s; } .hm-lamps b:nth-child(3) { animation-delay: 1.2s; } .hm-lamps b:nth-child(4) { animation-delay: 1.8s; }
@keyframes hmLamp { 0%, 24% { background: var(--n2); box-shadow: 0 0 6px rgba(255,176,46,.8); } 25%, 100% { background: #3a0d08; box-shadow: none; } }
.hm-keys { flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: minmax(0, 1fr); gap: 8px; }
.hm-led { position: absolute; top: 11px; right: 11px; width: 8px; height: 8px; border-radius: 50%; background: #3a0d08; box-shadow: inset 0 1px 1px rgba(0,0,0,.7); transition: background .15s, box-shadow .15s; }
.hm-key { position: relative; min-height: 104px; display: grid; grid-template-rows: auto 1fr auto auto; justify-items: start; align-items: end; gap: 2px; padding: 12px 12px 11px; text-align: left; cursor: pointer; color: var(--bone);
  background: linear-gradient(180deg, #261010 0%, #170808 55%, #0f0405 100%); border: 1px solid rgba(255,90,70,.22); border-radius: 4px;
  box-shadow: inset 0 1px 0 rgba(255,220,200,.12), inset 0 -3px 0 rgba(0,0,0,.6), 0 4px 0 #050101, 0 10px 18px rgba(0,0,0,.5); transition: transform .08s, box-shadow .08s, border-color .15s, background .15s; }
.hm-key::before { content: ''; position: absolute; inset: 5px; border: 1px solid rgba(255,90,70,.08); border-radius: 3px; pointer-events: none; }
.hm-n { align-self: start; font-size: 10px; letter-spacing: .22em; color: var(--dim); }
.hm-key .ic { align-self: center; width: 24px; height: 24px; color: var(--n2); filter: drop-shadow(0 0 6px rgba(255,176,46,.4)); }
.hm-key b { font: 600 12.5px/1.1 var(--f-mono); letter-spacing: .2em; }
.hm-key em { font: 400 12px/1.35 var(--f-ui); font-style: normal; color: var(--ash); }
.hm-key:active { transform: translateY(3px); box-shadow: inset 0 1px 0 rgba(255,220,200,.08), inset 0 -1px 0 rgba(0,0,0,.6), 0 1px 0 #050101, 0 4px 8px rgba(0,0,0,.4); }
.hm-key.on { border-color: var(--n-soft); background: linear-gradient(180deg, #3c1311, #1e0707 60%, #130405); }
.hm-key.on .hm-led { background: var(--n); box-shadow: var(--n-glow); }
.hm-key.on b { text-shadow: var(--n-glow); }
.hm-df { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.hm-df > div { min-width: 0; padding: 6px 8px; background: #0b0303; border: 1px solid rgba(255,90,70,.16); box-shadow: inset 0 2px 6px rgba(0,0,0,.85); }
.hm-df b { display: block; font: 500 12.5px/1.25 var(--f-mono); color: var(--n2); white-space: nowrap; }
.hm-df span { font-size: 8px; letter-spacing: .18em; color: var(--dim); }

/* статья: клавиши переходов */
.a-go { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; margin-top: 18px; }
.a-key { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 10px 12px; text-align: left; cursor: pointer; color: var(--bone);
  background: linear-gradient(180deg, #241010, #120506); border: 1px solid rgba(255,90,70,.24); border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,220,200,.1), inset 0 -2px 0 rgba(0,0,0,.6), 0 3px 0 #050101; transition: transform .08s, border-color .15s; }
.a-key svg { grid-row: 1 / 3; width: 20px; height: 20px; fill: none; stroke: var(--n2); stroke-width: 1.5; }
.a-key b { font: 600 11px/1.2 var(--f-mono); letter-spacing: .18em; }
.a-key em { font-style: normal; font-size: 9.5px; letter-spacing: .12em; color: var(--dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.a-key:active { transform: translateY(2px); box-shadow: inset 0 1px 0 rgba(255,220,200,.06), 0 1px 0 #050101; }
@media (hover: hover) { .a-key:hover { border-color: var(--n); } .hm-key:hover { border-color: var(--n-soft); } }
.t2-read .a-lead { font-size: 17px; line-height: 1.65; max-width: 640px; }

/* разделение: список + область */
.t2-split { height: 100%; display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 10px; }
.t2-side { overflow: auto; padding: 6px 0 12px; scrollbar-width: thin; scrollbar-color: rgba(255,42,31,.4) transparent; }
.t2-li { position: relative; display: flex; align-items: baseline; gap: 8px; width: 100%; padding: 7px 12px 7px 14px; text-align: left; font: 500 11px/1.3 var(--f-mono); letter-spacing: .08em; color: var(--ash); background: none; border: 0; border-left: 2px solid transparent; cursor: pointer; }
.t2-li i { font-style: normal; color: var(--dim); font-size: 10px; }
.t2-li b { font-weight: 500; color: var(--bone); white-space: nowrap; }
.t2-li span { font: 400 12px/1.3 var(--f-ui); color: var(--dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.t2-li .ok { margin-left: auto; color: var(--n2); font-size: 8px; text-shadow: 0 0 6px rgba(255,176,46,.8); }
.t2-li[hidden] { display: none; }
.t2-li.on { border-left-color: var(--n); background: linear-gradient(90deg, rgba(255,42,31,.22), transparent); }
.t2-li.on b { color: #fff; text-shadow: var(--n-glow); }
.t2-li.ch b { letter-spacing: .2em; }
@media (hover: hover) { .t2-li:hover { background: rgba(255,42,31,.08); } }
.t2-view { min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.t2-view .lts-n { flex: 1; min-height: 0; display: flex; flex-direction: column; border: 0; background: radial-gradient(ellipse at 50% 30%, rgba(255,120,60,.08), transparent 60%); }
.t2-view .lts-n-stage { flex: 1; height: auto; min-height: 0; }
.t2-view .lts-n-bar { padding: 8px 10px; border-top: 1px solid rgba(255,42,31,.2); background: rgba(8,2,3,.8); }
.lts-n:fullscreen { background: #050102; }
.lts-n:fullscreen .lts-n-stage { height: calc(100vh - 54px); }
.t2-about { position: absolute; left: 12px; top: 12px; z-index: 4; max-width: min(520px, 70%); background: rgba(8,2,3,.86); border: 1px solid rgba(255,90,70,.3); backdrop-filter: blur(8px); box-shadow: 0 10px 30px rgba(0,0,0,.5); }
.t2-about summary { list-style: none; cursor: pointer; padding: 8px 12px; font-size: 10.5px; letter-spacing: .16em; color: var(--bone); }
.t2-about summary::-webkit-details-marker { display: none; }
.t2-about summary i { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-right: 6px; font-style: normal; color: #1a0505; background: var(--n); box-shadow: var(--n-glow); }
.t2-about p { margin: 0; padding: 0 12px 10px; font: 400 13px/1.55 var(--f-ui); color: var(--text); max-height: 46vh; overflow: auto; }

/* энциклопедия */
.t2-read { overflow: auto; scrollbar-width: thin; scrollbar-color: rgba(255,42,31,.4) transparent; }
.t2-read-in { padding: clamp(16px, 2.4vw, 32px); }
.a-head { padding-bottom: 14px; margin-bottom: 16px; border-bottom: 1px dashed rgba(255,42,31,.35); }
.a-t { margin: 0; font: 600 clamp(30px, 4vw, 56px)/1 var(--f-disp); color: var(--bone); letter-spacing: .02em; text-shadow: 0 0 22px rgba(255,42,31,.3); }
.a-n { margin: 4px 0 10px; font: 500 15px/1.3 var(--f-ui); color: var(--n2); letter-spacing: .04em; }
.a-lead { margin: 0; max-width: 820px; font: 400 15px/1.6 var(--f-ui); color: var(--text); }
.a-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, 1fr); gap: 22px; align-items: start; }
.a-sec { margin-bottom: 18px; }
.a-sec h3 { margin: 0 0 8px; font: 500 10.5px/1 var(--f-mono); letter-spacing: .24em; color: var(--n); }
.a-sec h3 i { font-style: normal; padding: 3px 8px; border-left: 2px solid var(--n); background: linear-gradient(90deg, rgba(255,42,31,.18), transparent); text-shadow: var(--n-glow); }
.a-sec p { margin: 0 0 10px; font: 400 14.5px/1.65 var(--f-ui); color: var(--text); }
.a-pic { position: relative; display: block; width: 100%; padding: 0; margin: 0 0 12px; border: 1px solid var(--n-soft); background: #050102; cursor: zoom-in; overflow: hidden; }
.a-pic img { display: block; width: 100%; height: auto; transition: transform .6s var(--ease); }
.a-pic span { position: absolute; right: 8px; bottom: 8px; padding: 3px 7px; font-size: 9.5px; letter-spacing: .2em; color: var(--bone); background: rgba(5,1,2,.8); border: 1px solid var(--n-soft); }
@media (hover: hover) { .a-pic:hover img { transform: scale(1.03); } }
.a-pn { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 20px; padding-top: 12px; border-top: 1px dashed rgba(255,42,31,.35); }
.a-pn button { padding: 8px 12px; font: 500 11px/1 var(--f-mono); letter-spacing: .12em; color: var(--bone); background: transparent; border: 1px solid rgba(255,42,31,.35); cursor: pointer; }
.a-pn span { font-size: 9.5px; letter-spacing: .22em; color: var(--dim); }
@media (hover: hover) { .a-pn button:hover { border-color: var(--n); box-shadow: var(--n-glow); } }
.t2-read .lts-chip svg { width: 13px; height: 13px; vertical-align: -2px; }
.t2-read .cp, .t2-read .cx { padding: 0; }

/* архив внутри терминала */
.t2[data-view="art"] .t2-main > .ca { height: 100%; }

/* ---------- галерея и фотостудия ---------- */
.t2-room, .sr { height: 100%; }
.sr { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 10px; }
.sr-studio { grid-template-columns: 240px minmax(0, 1fr) 250px; }
.sr-list { overflow: auto; padding: 8px 0; scrollbar-width: thin; scrollbar-color: rgba(255,42,31,.4) transparent; }
.sr-q { display: flex; align-items: center; gap: 8px; margin: 2px 10px 8px; padding: 7px 9px; border: 1px solid rgba(255,90,70,.3); background: rgba(5,1,2,.7); box-shadow: inset 0 2px 6px rgba(0,0,0,.6); }
.sr-q span { color: var(--n); text-shadow: var(--n-glow); }
.sr-q input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--bone); font: 500 11px/1 var(--f-mono); letter-spacing: .1em; }
.sr-q:focus-within { border-color: var(--n); box-shadow: var(--n-glow), inset 0 2px 6px rgba(0,0,0,.6); }
.sr-groups details { border-top: 1px solid rgba(255,42,31,.12); }
.sr-groups summary { list-style: none; cursor: pointer; padding: 8px 12px; font-size: 9.5px; letter-spacing: .2em; color: var(--ash); }
.sr-groups summary::-webkit-details-marker { display: none; }
.sr-groups summary::before { content: '▸ '; color: var(--n); }
.sr-groups details[open] summary::before { content: '▾ '; }
.sr-groups summary i { font-style: normal; color: var(--dim); }
.sr-it { display: flex; flex-direction: column; gap: 2px; width: 100%; padding: 6px 12px 6px 16px; text-align: left; background: none; border: 0; border-left: 2px solid transparent; cursor: pointer; }
.sr-it b { font: 500 11px/1.2 var(--f-mono); letter-spacing: .08em; color: var(--bone); }
.sr-it span { font: 400 11.5px/1.3 var(--f-ui); color: var(--dim); }
.sr-it.on { border-left-color: var(--n); background: linear-gradient(90deg, rgba(255,42,31,.22), transparent); }
.sr-it.on b { text-shadow: var(--n-glow); }
@media (hover: hover) { .sr-it:hover { background: rgba(255,42,31,.08); } }
.sr-view { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.sr-view:fullscreen { background: #050102; }
.sr-stage { position: relative; flex: 1; min-height: 0; display: grid; place-items: center; overflow: hidden; background: #050102; }
.sr-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: grab; touch-action: none; }
.sr-stage canvas:active { cursor: grabbing; }
.sr-frame { position: relative; pointer-events: none; box-shadow: 0 0 0 9999px rgba(3,1,1,.55); outline: 1px solid rgba(255,176,46,.7); }
.sr-frame[hidden] { display: none; }
.sr-thirds { position: absolute; inset: 0; background: linear-gradient(90deg, transparent calc(33.33% - .5px), rgba(255,176,46,.35) 0 calc(33.33% + .5px), transparent 0 calc(66.66% - .5px), rgba(255,176,46,.35) 0 calc(66.66% + .5px), transparent 0), linear-gradient(0deg, transparent calc(33.33% - .5px), rgba(255,176,46,.35) 0 calc(33.33% + .5px), transparent 0 calc(66.66% - .5px), rgba(255,176,46,.35) 0 calc(66.66% + .5px), transparent 0); }
.sr-thirds[hidden] { display: none; }
.sr-flash { position: absolute; inset: 0; background: #fff; opacity: 0; pointer-events: none; }
.sr-flash.on { animation: srFlash .5s ease-out; }
@keyframes srFlash { 0% { opacity: .75; } 100% { opacity: 0; } }
.sr-load { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; font-size: 11px; letter-spacing: .2em; color: var(--ash); }
.sr-load[hidden] { display: none; }
.sr-load em { font-style: normal; padding: 8px 12px; border: 1px solid rgba(255,90,70,.3); background: rgba(5,1,2,.75); }
.sr-hud { position: absolute; left: 12px; top: 10px; display: flex; flex-direction: column; gap: 2px; pointer-events: none; text-shadow: 0 1px 4px #000; }
.sr-hud b { font: 600 16px/1 var(--f-mono); letter-spacing: .12em; color: var(--bone); }
.sr-hud span { font-size: 10px; letter-spacing: .14em; color: var(--ash); }
.sr-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 10px; border-top: 1px solid rgba(255,42,31,.22); background: rgba(8,2,3,.85); }
.sr-seg { display: inline-flex; border: 1px solid rgba(255,90,70,.25); }
.sr-seg button { padding: 8px 10px; font: 500 10px/1 var(--f-mono); letter-spacing: .14em; color: var(--ash); background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.25)); border: 0; cursor: pointer; }
.sr-seg button + button { border-left: 1px solid rgba(255,90,70,.18); }
.sr-seg button.on { color: #1a0505; background: var(--n); box-shadow: var(--n-glow); }
.sr-seg.sm button { padding: 6px 8px; font-size: 9.5px; }
.sr-seg[hidden] { display: none; }
.sr-bd button { width: 28px; padding: 6px; }
.sr-bd i { display: block; width: 14px; height: 14px; background: var(--c); border: 1px solid rgba(255,255,255,.3); }
.sr-bd button.on { background: rgba(255,42,31,.3); }
.sr-sp { flex: 1; }
.sr-seed { font: 500 9.5px/1 var(--f-mono); letter-spacing: .14em; color: var(--ash); white-space: nowrap; }
.sr-seed[hidden], .sr-bar [hidden] { display: none; }
.t2-btn.ghost { color: var(--bone); background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.3)); border-color: rgba(255,42,31,.45); box-shadow: none; }
.t2-btn:disabled { opacity: .5; cursor: progress; }
.sr-info { padding: 8px 12px; border-top: 1px solid rgba(255,42,31,.15); font: 400 12px/1.5 var(--f-ui); color: var(--ash); }
.sr-info p { margin: 0; }
.sr-ctl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; padding: 10px 12px; border-top: 1px solid rgba(255,42,31,.22); background: linear-gradient(180deg, rgba(20,6,6,.9), rgba(8,2,3,.95)); }
.sr-row { display: flex; align-items: center; gap: 8px; min-width: 0; flex-wrap: wrap; }
.sr-row > span { width: 128px; font-size: 9.5px; letter-spacing: .18em; color: var(--dim); }
.sr-row input[type="range"] { flex: 1; min-width: 70px; accent-color: var(--n); }
.sr-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 10px; letter-spacing: .14em; color: var(--ash); }
.sr-chk input { accent-color: var(--n); }
.sr-shoot { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; padding: 12px 16px; cursor: pointer; color: #1a0505; background: linear-gradient(180deg, #ff5a48, #c8180e); border: 1px solid #ff7a6a; box-shadow: var(--n-glow), inset 0 1px 0 rgba(255,255,255,.35), inset 0 -3px 0 rgba(0,0,0,.25); clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px); }
.sr-shoot i { width: 22px; height: 22px; border-radius: 50%; border: 3px solid #1a0505; box-shadow: inset 0 0 0 3px #ffb3a8; }
.sr-shoot b { font: 700 13px/1 var(--f-mono); letter-spacing: .24em; }
.sr-shoot em { margin-left: auto; font: 500 10px/1 var(--f-mono); letter-spacing: .12em; font-style: normal; opacity: .8; }
.sr-shoot:disabled { filter: grayscale(.6) brightness(.7); cursor: wait; }
.sr-shoot:active { transform: translateY(1px); }
.sr-shots { display: flex; flex-direction: column; min-height: 0; padding: 8px 0; }
.sr-sh-h { padding: 4px 12px 6px; font-size: 10.5px; letter-spacing: .24em; color: var(--bone); }
.sr-sh-h i { font-style: normal; color: var(--n); text-shadow: var(--n-glow); }
.sr-sh-note { margin: 0 12px 8px; font: 400 11px/1.4 var(--f-ui); color: var(--dim); }
.sr-sh-list { flex: 1; overflow: auto; padding: 0 8px; display: flex; flex-direction: column; gap: 6px; }
.sr-sh { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto auto; gap: 6px; align-items: center; padding: 6px; border: 1px solid rgba(255,90,70,.22); background: rgba(10,3,4,.7); }
.sr-sh img { width: 64px; height: 44px; object-fit: cover; display: block; border: 1px solid rgba(255,90,70,.3); }
.sr-sh b { display: block; font: 500 10.5px/1.2 var(--f-mono); color: var(--bone); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sr-sh span { display: block; font-size: 9.5px; color: var(--dim); letter-spacing: .06em; }
.sr-sh em { font-style: normal; font-size: 9.5px; color: var(--n2); letter-spacing: .1em; }
.sr-sh-empty { margin: 20px 12px; font-size: 10px; letter-spacing: .18em; color: var(--dim); text-align: center; }

/* адаптив */
@media (max-width: 1180px) { .sr-studio { grid-template-columns: 220px minmax(0, 1fr); } .sr-shots { grid-column: 1 / -1; max-height: 220px; } .sr-studio { grid-template-rows: minmax(0, 1fr) auto; } }
@media (max-width: 900px) {
  .t2-home { grid-template-columns: 1fr; grid-template-rows: minmax(260px, 1fr) auto; overflow: auto; }
  .hm-meters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .t2-body { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; }
  .t2-rail { flex-direction: row; width: auto; }
  .t2-rk { flex: 1; flex-direction: row; justify-content: center; padding: 10px 12px; }
  .t2-rk b { writing-mode: horizontal-tb; transform: none; }
  .t2-rk em { margin: 0 0 0 auto; }
  .t2-rk .hm-led { position: static; margin: 0; }
  .t2-split, .sr, .sr-studio { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .t2-side, .sr-list { max-height: 30vh; }
  .sr-ctl { grid-template-columns: 1fr; }
  .t2-tab span { display: none; }
  .t2-tab kbd, .t2-hint { display: none; }
}
@media (max-width: 900px) and (orientation: landscape) and (max-height: 560px) {
  .t2-home { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-rows: none; overflow: hidden; gap: 6px; }
  .hm-scr, .hm-deck { padding: 8px; gap: 6px; }
  .hm-crt { margin: 6px; min-height: 0; }
  .hm-meters, .hm-df, .hm-key em, .hm-cap em, .hm-dh em { display: none; }
  .hm-keys { gap: 6px; }
  .hm-key { min-height: 0; padding: 6px 10px; grid-template-rows: none; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; overflow: hidden; }
  .hm-key .hm-n, .t2-tick, .hm-dh { display: none; }
  .t2-app { grid-template-rows: auto minmax(0, 1fr) auto; }
  .hm-key .ic { width: 18px; height: 18px; }
  .hm-key b { font-size: 10.5px; letter-spacing: .14em; }
  .t2-body { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: none; }
  .t2-rail { flex-direction: column; width: 44px; }
  .t2-rk { flex-direction: column; padding: 18px 0 8px; }
  .t2-rk b { writing-mode: vertical-rl; transform: rotate(180deg); }
}
@media (max-width: 640px) { .t2-sw { display: none; } .a-grid { grid-template-columns: 1fr; } .hm-df { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hm-key { min-height: 88px; } .hm-key em { display: none; } }
@media (prefers-reduced-motion: reduce) { .t2-tick-in, .t2-led, .t2-cur, .t2-main.boot > *, .hm-lamps b, .hm-rec i { animation: none; } }

/* ---------- редактор: терминальный объёмный стиль (поверх базовых правил выше) ---------- */
.lted { grid-template-rows: auto auto minmax(0, 1fr); background: radial-gradient(ellipse at 50% -10%, rgba(255,60,30,.12), transparent 55%), #050102; gap: 0; }
.led-top { background: linear-gradient(180deg, #170707, #0a0304); border-bottom: 1px solid rgba(255,90,70,.3); box-shadow: inset 0 1px 0 rgba(255,210,190,.08), 0 6px 18px rgba(0,0,0,.5); }
.led-logo i { border-radius: 50%; animation: con-led 2.4s steps(2) infinite; }
.led-modes { border-color: rgba(255,90,70,.3); }
.led-modes button { position: relative; background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.25)); }
.led-modes button.on { box-shadow: 0 0 6px rgba(255,42,31,.7), 0 0 18px rgba(255,42,31,.35); }
.led-tick { grid-column: 1 / -1; overflow: hidden; height: 22px; display: flex; align-items: center; border-bottom: 1px solid rgba(255,42,31,.25); background: linear-gradient(90deg, rgba(255,42,31,.12), rgba(255,42,31,.03) 30%, rgba(255,42,31,.03) 70%, rgba(255,42,31,.12)); font-size: 10px; letter-spacing: .14em; color: var(--ash); white-space: nowrap; }
.led-tick-in { display: inline-flex; align-items: center; animation: t2Tick 80s linear infinite; }
.led-tick span { padding: 0 16px; }
.led-tick i { font-style: normal; color: var(--signal); font-size: 8px; text-shadow: 0 0 6px rgba(255,42,31,.8); }
.led-l, .led-r { background: linear-gradient(180deg, rgba(26,9,9,.96), rgba(10,4,5,.98)); box-shadow: inset 0 1px 0 rgba(255,220,200,.05), inset 0 -2px 0 rgba(0,0,0,.5); }
.led-cam { left: auto; right: 10px; bottom: 10px; display: flex; align-items: stretch; gap: 6px; grid-template-columns: none; padding: 6px; background: linear-gradient(180deg, rgba(30,11,11,.92), rgba(11,4,5,.94)); border: 1px solid rgba(255,90,70,.3); box-shadow: inset 0 1px 0 rgba(255,220,200,.07), 0 10px 26px rgba(0,0,0,.55); clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
.led-cam-h { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 9px; letter-spacing: .3em; color: var(--signal); text-shadow: 0 0 6px rgba(255,42,31,.7); }
.led-cam-g { display: grid; grid-template-columns: 34px 34px; grid-template-rows: auto 32px; gap: 3px; }
.led-cam-g b { grid-column: 1 / -1; font-weight: 500; font-size: 8.5px; letter-spacing: .18em; color: var(--dim); text-align: center; }
.led-cam button { width: 34px; height: 32px; font-size: 14px; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(0,0,0,.3)); border: 1px solid rgba(255,90,70,.3); box-shadow: inset 0 1px 0 rgba(255,220,200,.07), 0 2px 0 rgba(0,0,0,.6); }
.led-cam button:active { transform: translateY(1px); }
.led-cam-home { align-self: flex-end; }
@media (hover: hover) { .led-cam button:hover { color: var(--bone); border-color: var(--signal); } }
@media (max-width: 760px) { .led-cam-g b, .led-cam-h { display: none; } .led-cam-g { grid-template-rows: 30px; } }
@media (max-width: 900px) { .lted { grid-template-rows: auto auto minmax(0, 1fr) auto auto; } }

/* =====================================================================
   ТЕЛЕФОНЫ: вертикально и горизонтально. Остров камеры и полоска «домой» — через safe-area;
   в горизонтальном режиме шапка сайта убирается (кнопка ≡ возвращает её поверх терминала),
   «во весь экран» на iPhone — режим погружения html.lts-imm
   ===================================================================== */
.t2 .cx { margin-top: 0; }
.t2-site { display: none; }
.t2-app { margin-left: max(clamp(6px, 1vw, 14px), env(safe-area-inset-left)); margin-right: max(clamp(6px, 1vw, 14px), env(safe-area-inset-right)); margin-bottom: max(8px, env(safe-area-inset-bottom)); }
/* погружение и горизонтальный телефон: без шапки сайта */
html.lts-imm body[data-route="lts"] .topbar { transform: translateY(-110%); transition: transform .3s var(--ease); }
html.lts-imm.lts-nav body[data-route="lts"] .topbar { transform: none; }
html.lts-imm .t2 { padding-top: env(safe-area-inset-top); }
html.lts-imm .t2-site { display: inline-grid; }
html.lts-imm .t2-tick { display: none; }
html.lts-imm .t2-app { grid-template-rows: auto minmax(0, 1fr) auto; }
@media (orientation: landscape) and (max-height: 500px) {
  body[data-route="lts"] .topbar { transform: translateY(-110%); transition: transform .3s var(--ease); }
  html.lts-nav body[data-route="lts"] .topbar { transform: none; }
  .t2 { padding-top: 0; }
  .t2-site { display: inline-grid; }
  .t2-app { margin-top: 4px; margin-bottom: max(4px, env(safe-area-inset-bottom)); grid-template-rows: auto minmax(0, 1fr) auto; }
  .t2-tick { display: none; }
  .t2-top { gap: 8px; padding: 4px 6px; }
  .t2-logo { padding: 4px 6px; }
  .t2-tab { height: 30px; }
  .t2-ib { min-width: 30px; height: 30px; }
  .t2-sw button { padding: 7px 8px; }
  .t2-foot { height: 18px; margin-top: 3px; font-size: 9px; }
  /* клавиши модератора — узкая колонка справа */
  .t2-body { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: none; gap: 6px; }
  .t2-rail { flex-direction: column; width: 38px; gap: 6px; }
  .t2-rail .t2-rk { flex: 1 1 0; min-height: 0; flex-direction: column; justify-content: center; padding: 8px 0; gap: 6px; overflow: hidden; }
  .t2-rail .t2-rk b { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 9px; letter-spacing: .16em; }
  .t2-rail .t2-rk em, .t2-rail .t2-rk .hm-led { display: none; }
  /* список рядом с областью, а не над ней */
  .t2-split, .sr { grid-template-columns: minmax(150px, 28%) minmax(0, 1fr); grid-template-rows: none; gap: 6px; }
  .t2-side, .sr-list { max-height: none; }
  .t2-li span { display: none; }
  .t2-view .lts-n-bar { flex-wrap: nowrap; gap: 6px; padding: 5px 6px; }
  .t2-view .lts-n-st { display: none; }
  .t2-view .lts-n-btns { flex: 1; min-width: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .t2-view .lts-n-btns .lts-btn { flex: none; padding: 8px 11px; font-size: 10px; }
  .sr-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 5px 6px; }
  .sr-bar > * { flex: none; }
  .sr-info, .sr-hud span { display: none; }
  /* архив: картинка слева, текст справа и прокручивается */
  .t2[data-view="art"] .t2-main > .ca { min-height: 0; height: 100%; grid-template-columns: minmax(0, 1fr) minmax(240px, 42%); grid-template-rows: none; }
  .t2 .ca-pic { border-right: 1px solid var(--line); border-bottom: 0; }
  .t2 .ca-pic img { max-height: 100%; }
  .t2 .ca-txt { min-height: 0; overflow: auto; padding: 12px 14px; }
  .t2 .ca-txt > * { flex: none; }
  .t2 .ca-p { font-size: 13px; min-height: 0; }
  .t2 .ca-t { font-size: 22px; }
  .t2 .ca-3d { padding: 8px; margin-top: 10px; } .t2 .ca-3d b { font-size: 13px; }
  .t2 .a-t { font-size: 30px; }
  .t2 .a-grid { grid-template-columns: minmax(0, 1fr) minmax(200px, 38%); gap: 14px; }
}
@media (max-width: 600px) {
  .t2-app { margin-top: 4px; grid-template-rows: auto minmax(0, 1fr) auto; }
  .t2-top { gap: 6px; padding: 5px 6px; }
  .t2-logo { padding: 4px; gap: 6px; font-size: 11px; letter-spacing: .12em; }
  .t2-logo em { display: none; }
  .t2-nav { gap: 3px; }
  .t2-tab { height: 32px; padding: 0; }
  .t2-ib { min-width: 32px; height: 32px; padding: 0; }
  .t2-tick { display: none; }
  .t2-clock { display: none; }
  .t2-rail { gap: 6px; }
  .t2-rk { min-width: 0; padding: 9px 10px; gap: 8px; }
  .t2-rk em { display: none; }
  .t2-rk b { min-width: 0; font-size: 9.5px; letter-spacing: .14em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  /* списки сцен и энциклопедии — лента «чипов» над областью: 3D и статья получают почти всю высоту */
  .t2-split { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); gap: 6px; }
  .t2-side { display: flex; align-items: center; gap: 4px; max-height: none; overflow-x: auto; overflow-y: hidden; padding: 6px; scrollbar-width: none; }
  .t2-side::-webkit-scrollbar { display: none; }
  .t2-side .t2-h { display: none; }
  .t2-side .t2-li { flex: none; width: auto; padding: 8px 10px; border: 1px solid rgba(255,90,70,.22); }
  .t2-side .t2-li span { display: none; }
  .t2-side .sr-q { flex: none; width: 150px; margin: 0; }
  .sr-list { max-height: 24vh; }
  .t2-view .lts-n-bar { flex-wrap: nowrap; gap: 6px; padding: 6px; }
  .t2-view .lts-n-st { display: none; }
  .t2-view .lts-n-btns { flex: 1; min-width: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .t2-view .lts-n-btns .lts-btn { flex: none; padding: 9px 11px; font-size: 10px; }
  .sr-bar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 6px; }
  .sr-bar > * { flex: none; }
  .sr-info { display: none; }
  /* архив: картинка сверху, текст снизу прокручивается */
  .t2[data-view="art"] .t2-main > .ca { min-height: 0; height: 100%; grid-template-columns: 1fr; grid-template-rows: minmax(0, 46%) minmax(0, 1fr); }
  .t2 .ca-pic { border-right: 0; border-bottom: 1px solid var(--line); }
  .t2 .ca-pic img { max-height: 100%; }
  .t2 .ca-txt { min-height: 0; overflow: auto; padding: 12px 14px; }
  .t2 .ca-txt > * { flex: none; }
  .t2 .ca-p { font-size: 13.5px; min-height: 0; }
  .t2 .ca-t { font-size: 22px; }
  .t2 .ca-3d { padding: 9px; margin-top: 10px; } .t2 .ca-3d b { font-size: 13px; }
  .t2 .a-grid { grid-template-columns: 1fr; }
  .t2 .t2-about { max-width: calc(100% - 24px); }  /* пульт на обзоре: клавиши не сжимаются друг на друга — пульт растёт, обзор прокручивается */
  .t2-home { grid-template-rows: minmax(250px, 46vh) auto; }
  .hm-deck { min-height: min-content; }
  .hm-keys { flex: none; grid-auto-rows: auto; }
  .hm-key { min-height: 78px; }
}
/* ровные кнопки-значки (iOS добавляет кнопкам поля и сдвигает значок) */
.ca-ctl button, .t2-ib, .t2-tab, .hm-key, .t2-rk, .sr-seg button, .t2-sw button { -webkit-appearance: none; appearance: none; -webkit-tap-highlight-color: transparent; }
.ca-ctl button { display: inline-grid; place-items: center; padding: 0; line-height: 1; }
.t2-ib { padding: 0; line-height: 1; }
.t2-tab .ic, .t2-ib .ic { display: block; margin: 0; }
