/*
Theme Name: Sections Hi-Tech
Theme URI: https://example.test/sections-hi-tech
Description: Минимальная классическая тема в красно-чёрном хайтек-стиле для редакционного портала. Без сборки, без зависимостей.
Version: 1.0.1
Requires at least: 6.0
Requires PHP: 8.0
Author: Sections Workflow
Text Domain: sections-hi-tech
Tags: dark, custom-menu, threaded-comments, translation-ready
*/

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

:root{
  --sht-bg:#15151a;
  --sht-surface:#1d1d23;
  --sht-border:#320f17;
  --sht-border-strong:#6d001f;
  --sht-text:#ededed;
  --sht-muted:#92929a;
  --sht-dim:#72727a;
  --sht-accent:#ff003c;
  --sht-mono:ui-monospace,"SF Mono","JetBrains Mono","Fira Code",Menlo,Consolas,monospace;
  --sht-sans:"Inter Tight","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}

body{
  margin:0;min-height:100vh;display:flex;flex-direction:column;
  font-family:var(--sht-sans);
  background:var(--sht-bg);color:var(--sht-text);
  line-height:1.6;-webkit-font-smoothing:antialiased;
  background-image:radial-gradient(ellipse at 30% -10%,rgba(255,0,60,.08) 0,transparent 50%);
}

a{color:var(--sht-accent)}
a:hover{text-shadow:0 0 8px rgba(255,0,60,.5)}

::selection{background:var(--sht-accent);color:#000}

/* ============= header ============= */

.sht-header{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:stretch;gap:0;
  padding:0 clamp(1rem,2.5vw,2rem);
  background:rgba(5,5,5,.86);
  backdrop-filter:saturate(180%) blur(10px);
  -webkit-backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--sht-border-strong);
  min-height:60px;
}
.sht-header::before{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,var(--sht-accent) 0,var(--sht-accent) 96px,transparent 96px,transparent 100%);
}
.sht-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit;flex-shrink:0;padding:.85rem 1.25rem .85rem 0;border-right:1px solid var(--sht-border);margin-right:1rem}
.sht-brand:hover{text-shadow:none}
.sht-brand__mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;line-height:0;box-shadow:0 0 12px rgba(255,0,60,.45)}
.sht-brand__mark svg,.sht-brand__mark-img{width:100%;height:100%;display:block;object-fit:contain}
.sht-brand__mark-bg{fill:var(--sht-accent)}
.sht-brand__name{font-size:.95rem;letter-spacing:.04em;white-space:nowrap;font-weight:800;text-transform:uppercase;color:#fff}
.sht-brand__sub{font-family:var(--sht-mono);font-size:.7rem;color:var(--sht-muted);letter-spacing:.06em;white-space:nowrap}

/* Кнопка «БЛОГ» + выпадающий список разделов. Desktop: открывается по
   :hover/:focus-within (только на устройствах с реальным hover, чтобы тач
   не «залипал» в открытом состоянии). Mobile: открывается тапом — JS в
   functions.php переключает класс .is-open и гасит переход по ссылке. */
.sht-blog{position:relative;display:flex;align-items:stretch}
.sht-blog__link{display:inline-flex;align-items:center;gap:.5rem;padding:0 1.25rem;text-decoration:none;color:#fff;font-family:var(--sht-mono);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-right:1px solid var(--sht-border);transition:background .15s ease,color .15s ease}
.sht-blog__link:hover{background:rgba(255,0,60,.08);text-shadow:none}
.sht-blog__arrow{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-2px;transition:transform .15s ease,margin-top .15s ease}
.sht-blog.is-open .sht-blog__arrow{transform:rotate(-135deg);margin-top:2px}

.sht-blog__dropdown{
  display:none;position:absolute;top:100%;left:0;min-width:240px;z-index:20;
  flex-direction:column;background:#080808;border:1px solid var(--sht-border-strong);
  border-top:none;box-shadow:0 12px 24px -12px rgba(0,0,0,.6);
}
.sht-blog.is-open .sht-blog__dropdown{display:flex}
@media (hover:hover) and (pointer:fine){
  .sht-blog:hover .sht-blog__arrow{transform:rotate(-135deg);margin-top:2px}
  .sht-blog:hover .sht-blog__dropdown,
  .sht-blog:focus-within .sht-blog__dropdown{display:flex}
}

.sht-blog__item{display:flex;align-items:center;gap:.55rem;padding:.75rem 1.1rem;text-decoration:none;color:#9a9a9a;font-family:var(--sht-mono);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;white-space:nowrap;border-bottom:1px solid var(--sht-border)}
.sht-blog__item:last-child{border-bottom:none}
.sht-blog__item:hover{background:rgba(255,0,60,.08);color:#fff;text-shadow:none}
.sht-blog__item.is-active{background:rgba(255,0,60,.12);color:#fff}
.sht-blog__item-num{color:var(--sht-dim);font-weight:700}
.sht-blog__item:hover .sht-blog__item-num{color:var(--sht-accent)}

@media (max-width:640px){
  /* static: dropdown позиционируется от шапки (sticky) и раскрывается на всю ширину экрана, а не кнопки «БЛОГ». */
  .sht-blog{order:2;border-left:1px solid var(--sht-border);position:static}
  .sht-blog__link{padding:0 1rem}
  .sht-blog__dropdown{position:absolute;left:0;right:0;top:100%;min-width:0;width:auto;border-left:none;border-right:none}
  .sht-blog__item{padding:.95rem 1rem;font-size:.85rem;white-space:normal}
  .sht-blog__link--about{order:2;border-left:1px solid var(--sht-border)}
}

.sht-actions{display:flex;align-items:center;gap:0;flex-shrink:0;margin-left:auto}
.sht-status{display:inline-flex;align-items:center;gap:.45rem;padding:0 1rem;font-family:var(--sht-mono);font-size:.72rem;color:#9a9a9a;letter-spacing:.1em;text-transform:uppercase;border-left:1px solid var(--sht-border)}
.sht-status__dot{width:8px;height:8px;background:#22c55e;box-shadow:0 0 8px #22c55e}

.sht-btn{display:inline-flex;align-items:center;padding:0 1.15rem;font-family:var(--sht-mono);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-left:1px solid var(--sht-border);align-self:stretch;transition:background .15s ease,color .15s ease}
.sht-btn--ghost{color:var(--sht-accent)}
.sht-btn--ghost:hover{background:var(--sht-accent);color:#000;text-shadow:none}

/* language switch (RU/EN) — в шапке темы, использует функцию ew_llm_render_lang_switch() из mu llm-translate.php */
.ew-lang{display:inline-flex;align-items:stretch;border-left:1px solid var(--sht-border)}
.ew-lang__btn{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:0 .8rem;font-family:var(--sht-mono);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9a9a9a;text-decoration:none;border-right:1px solid var(--sht-border);transition:background .15s ease,color .15s ease}
.ew-lang__btn:hover{background:rgba(255,0,60,.08);color:#fff;text-shadow:none}
.ew-lang__btn.is-active{background:var(--sht-accent);color:#000;cursor:default;pointer-events:none}
@media (max-width:640px){
  .ew-lang{order:1;border-left:none;width:auto;margin-right:auto}
  .ew-lang__btn{padding:.85rem 1rem}
}

@media (max-width:640px){
  .sht-header{flex-wrap:wrap;padding:0 1rem;min-height:auto}
  /* Ряд 1: brand слева + burger справа. Brand растягивается, burger прижат вправо. */
  .sht-brand{order:1;flex:1;border-right:none;margin-right:0;padding:.85rem 0;width:auto;border-bottom:1px solid var(--sht-border)}
  .sht-blog{order:2;border-bottom:1px solid var(--sht-border)}
  .sht-blog__link--about{order:2;border-bottom:1px solid var(--sht-border)}
  /* Ряд 2: actions (язык, тема, статус) во всю ширину. */
  .sht-actions{order:3;border-left:none;margin-left:0;border-bottom:1px solid var(--sht-border);width:100%;justify-content:space-between}
  /* Ряд 3 (раскрываемый): nav. */
  .sht-status{border-left:none;padding-left:0}
  .sht-btn{padding:.85rem 1.15rem}
}

/* ============= main / hero ============= */

.sht-main{flex:1;display:flex;flex-direction:column;max-width:1600px;width:100%;margin:0 auto}

.sht-hero{position:relative;padding:clamp(2.5rem,6vw,5rem) clamp(1rem,2.5vw,2rem) clamp(1.5rem,3vw,2.8rem)}
.sht-hero__scan{position:absolute;left:clamp(1rem,2.5vw,2rem);right:clamp(1rem,2.5vw,2rem);top:1.5rem;height:14px;background:repeating-linear-gradient(90deg,var(--sht-accent) 0,var(--sht-accent) 1px,transparent 1px,transparent 5px);opacity:.5;mask-image:linear-gradient(90deg,#000,transparent);-webkit-mask-image:linear-gradient(90deg,#000,transparent)}
.sht-hero__eyebrow{margin:0 0 1.25rem;color:var(--sht-muted);font-family:var(--sht-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;display:inline-flex;align-items:center;gap:.6rem;padding:.45rem .75rem;border:1px solid var(--sht-border-strong);background:rgba(255,0,60,.04)}
.sht-hero__eyebrow-mark{width:6px;height:6px;background:var(--sht-accent);box-shadow:0 0 8px var(--sht-accent);flex-shrink:0}
.sht-hero__title{margin:0 0 1.1rem;font-size:clamp(2rem,5.5vw,3.8rem);line-height:.98;letter-spacing:-.02em;font-weight:900;text-transform:uppercase;color:#fff}
.sht-hero__title-accent{color:var(--sht-accent);font-weight:400;display:inline-block;transform:skewX(-12deg);margin:0 .15em;text-shadow:0 0 25px rgba(255,0,60,.55)}
.sht-hero__lede{margin:0;max-width:720px;font-family:var(--sht-mono);font-size:clamp(.95rem,1.2vw,1.05rem);color:#9a9a9a;line-height:1.55}
.sht-hero__lede a{color:var(--sht-accent);text-decoration:none}

/* ============= post list (terminal-row style) ============= */

.sht-list{padding:0 clamp(1rem,2.5vw,2rem) 4rem;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--sht-border)}

.sht-row{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);gap:1.5rem;padding:1.5rem clamp(.5rem,1.5vw,1.5rem);border-bottom:1px solid var(--sht-border);transition:background .15s ease}
.sht-row:hover{background:#0a0204}
.sht-row:hover::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--sht-accent);box-shadow:0 0 12px rgba(255,0,60,.6)}
.sht-row__num{font-family:var(--sht-mono);font-size:.85rem;color:var(--sht-dim);font-weight:700;letter-spacing:.05em;line-height:1.3}
.sht-row__body{display:flex;flex-direction:column;gap:.55rem;min-width:0}
.sht-row__topline{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem;font-family:var(--sht-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sht-muted);line-height:1}
.sht-row__section{color:var(--sht-accent);font-weight:700;text-decoration:none;position:relative;z-index:2}
.sht-row__section:hover{text-shadow:0 0 8px var(--sht-accent)}
.sht-row__date{color:var(--sht-dim)}
.sht-row__author{color:#9a9a9a;text-decoration:none;position:relative;z-index:2;transition:color .15s ease}
a.sht-row__author:hover{color:var(--sht-accent);text-shadow:0 0 6px var(--sht-accent)}
a.sht-tile__author{color:#9a9a9a;text-decoration:none;position:relative;z-index:2;transition:color .15s ease}
a.sht-tile__author:hover{color:var(--sht-accent);text-shadow:0 0 6px var(--sht-accent)}
.sht-article__meta a{color:var(--sht-accent);text-decoration:none;transition:text-shadow .15s ease}
.sht-article__meta a:hover{text-shadow:0 0 8px var(--sht-accent)}
.sht-feat__meta a{color:#cfcfcf;text-decoration:none;transition:color .15s ease}
.sht-feat__meta a:hover{color:var(--sht-accent);text-shadow:0 0 6px var(--sht-accent)}
.sht-row__sep{color:var(--sht-accent);opacity:.7}
.sht-row__title{margin:0;font-size:clamp(1.1rem,1.7vw,1.5rem);line-height:1.25;font-weight:800;letter-spacing:-.005em;color:#fff}
.sht-row__title a{color:inherit;text-decoration:none;transition:color .15s ease}
.sht-row__title a:hover{color:var(--sht-accent);text-shadow:none}
.sht-row__title a::after{content:'';position:absolute;inset:0;z-index:1}
.sht-row__excerpt{margin:0;color:var(--sht-muted);font-size:.95rem;line-height:1.55;max-width:74ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sht-row__more{align-self:flex-start;font-family:var(--sht-mono);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sht-accent);text-decoration:none;display:inline-flex;align-items:center;gap:.45rem;padding:.3rem 0;position:relative;z-index:2;transition:gap .15s ease}
.sht-row__more:hover{gap:.65rem;text-shadow:0 0 10px rgba(255,0,60,.6)}

@media (max-width:600px){
  .sht-row{grid-template-columns:1fr;gap:.45rem;padding:1.2rem .5rem}
  .sht-row__num{order:0;font-size:.75rem}
}

/* ============= homepage (front-page.php): 1 hero + 2 big + 3 small ============= */

.sht-home{
  margin:0 clamp(1rem,2.5vw,2rem) 3rem;
  display:grid;gap:0;
  grid-template-columns:1fr;
  grid-template-areas:"main" "big1" "big2" "small1" "small2" "small3" "sys";
  border-top:1px solid var(--sht-border);
  border-left:1px solid var(--sht-border);
}
.sht-home__cell{display:flex;border-right:1px solid var(--sht-border);border-bottom:1px solid var(--sht-border);min-width:0}
.sht-home__cell > *{flex:1 1 auto;min-width:0}
.sht-home__cell--main{grid-area:main}
.sht-home__cell--sys{grid-area:sys}
.sht-home__cell--big1{grid-area:big1}
.sht-home__cell--big2{grid-area:big2}
.sht-home__cell--small1{grid-area:small1}
.sht-home__cell--small2{grid-area:small2}
.sht-home__cell--small3{grid-area:small3}

@media (min-width:760px) and (max-width:1099px){
  .sht-home{
    grid-template-columns:repeat(6,minmax(0,1fr));
    grid-template-areas:
      "main main main main main main"
      "big1 big1 big1 big2 big2 big2"
      "small1 small1 small2 small2 small3 small3"
      "sys  sys  sys  sys  sys  sys";
  }
}

@media (min-width:1100px){
  .sht-home{
    grid-template-columns:repeat(6,minmax(0,1fr));
    grid-template-areas:
      "main main main main sys sys"
      "big1 big1 big1 big2 big2 big2"
      "small1 small1 small2 small2 small3 small3";
  }
}

/* feat — единый базовый, варианты через --main/--big/--small */
.sht-feat{position:relative;display:flex;flex-direction:column;background:var(--sht-surface);overflow:hidden;width:100%;min-width:0;transition:background .2s ease}
.sht-feat:hover{background:#0f0204;box-shadow:inset 0 0 0 1px rgba(255,0,60,.18),0 0 30px -10px rgba(255,0,60,.45)}
.sht-feat:focus-within{outline:1px solid var(--sht-accent);outline-offset:-1px}

.sht-feat__bracket{position:absolute;width:14px;height:14px;border:1px solid var(--sht-accent);opacity:0;transition:opacity .2s ease,width .2s ease,height .2s ease;pointer-events:none;z-index:3}
.sht-feat__bracket--tl{top:6px;left:6px;border-right:none;border-bottom:none}
.sht-feat__bracket--tr{top:6px;right:6px;border-left:none;border-bottom:none}
.sht-feat__bracket--bl{bottom:6px;left:6px;border-right:none;border-top:none}
.sht-feat__bracket--br{bottom:6px;right:6px;border-left:none;border-top:none}
.sht-feat:hover .sht-feat__bracket{opacity:1;width:18px;height:18px}

.sht-feat__media{flex:0 0 auto;aspect-ratio:16/9;background:#070707 center/cover no-repeat;position:relative;border-bottom:1px solid var(--sht-border)}
.sht-feat__media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.55) 100%);pointer-events:none}
.sht-feat__media--placeholder{background:repeating-linear-gradient(135deg,#0a0a0a 0,#0a0a0a 6px,#0e0306 6px,#0e0306 7px),var(--sht-surface);display:flex;align-items:center;justify-content:center}
.sht-feat__media--placeholder::before{content:'';position:absolute;inset:14px;border:1px solid var(--sht-accent);opacity:.35;pointer-events:none}
.sht-feat__initials{font-family:var(--sht-mono);font-size:clamp(2rem,5vw,3.6rem);font-weight:800;color:var(--sht-accent);letter-spacing:.02em;text-shadow:0 0 22px rgba(255,0,60,.55);position:relative;z-index:1}

.sht-feat__body{display:flex;flex-direction:column;gap:.7rem;padding:1.05rem 1.2rem 1.2rem;flex:1 1 auto;min-width:0}
.sht-feat__topline{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap;font-family:var(--sht-mono);font-size:.7rem;letter-spacing:.06em;line-height:1;text-transform:uppercase}
.sht-feat__num{color:var(--sht-dim);font-weight:700;flex-shrink:0}
.sht-feat__section{color:var(--sht-accent);font-weight:700;text-decoration:none;position:relative;z-index:2}
.sht-feat__section:hover{text-shadow:0 0 8px var(--sht-accent)}
.sht-feat__date{color:var(--sht-dim)}
.sht-feat__sep{color:var(--sht-accent);opacity:.7}
.sht-feat__title{margin:0;font-size:1.1rem;line-height:1.25;font-weight:800;letter-spacing:-.005em;color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sht-feat__title a{color:inherit;text-decoration:none;transition:color .15s ease}
.sht-feat__title a:hover{color:var(--sht-accent);text-shadow:none}
.sht-feat__link::after{content:'';position:absolute;inset:0;z-index:1}
.sht-feat__excerpt{margin:0;color:var(--sht-muted);font-size:.92rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sht-feat__meta{margin-top:auto;font-family:var(--sht-mono);font-size:.74rem;color:var(--sht-dim);letter-spacing:.05em;text-transform:uppercase;padding-top:.6rem;border-top:1px solid var(--sht-border)}
.sht-feat__meta strong{color:#cfcfcf;font-weight:600}

/* size: main */
.sht-feat--main .sht-feat__title{font-size:clamp(1.4rem,3vw,2.2rem);-webkit-line-clamp:3}
.sht-feat--main .sht-feat__excerpt{font-size:clamp(.95rem,1.1vw,1.05rem);-webkit-line-clamp:4}
.sht-feat--main .sht-feat__media{aspect-ratio:21/9}
.sht-feat--main .sht-feat__body{gap:.85rem;padding:1.5rem 1.7rem 1.7rem}
.sht-feat--main::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--sht-accent),transparent 70%);z-index:2}

/* size: big — стандарт */

/* size: small */
.sht-feat--small .sht-feat__title{font-size:.98rem;-webkit-line-clamp:3}
.sht-feat--small .sht-feat__media{aspect-ratio:4/3}
.sht-feat--small .sht-feat__body{padding:.85rem 1rem 1rem;gap:.5rem}
.sht-feat--small .sht-feat__excerpt{display:none}

/* main: горизонтальная раскладка на широких — медиа слева, контент справа */
@media (min-width:1100px){
  .sht-feat--main{flex-direction:row;align-items:stretch}
  .sht-feat--main .sht-feat__media{aspect-ratio:auto;flex:1 1 60%;min-height:420px;border-right:1px solid var(--sht-border);border-bottom:none}
  .sht-feat--main .sht-feat__body{flex:1 1 40%;justify-content:center;gap:1rem;padding:2rem 2.2rem}
  .sht-feat--main .sht-feat__excerpt{-webkit-line-clamp:5}
}

@media (prefers-reduced-motion:reduce){
  .sht-feat,.sht-feat__bracket{transition:none}
}

/* ============= sys-telemetry (panel справа от hero на широких) ============= */

.sht-sys{
  display:flex;flex-direction:column;gap:1rem;
  padding:1.2rem 1.4rem 1.4rem;
  background:var(--sht-bg);
  font-family:var(--sht-mono);font-size:.78rem;
  color:#9a9a9a;letter-spacing:.04em;
  width:100%;min-width:0;
  position:relative;
}
.sht-sys::before{
  content:'';position:absolute;left:0;top:0;width:48px;height:2px;background:var(--sht-accent);box-shadow:0 0 8px var(--sht-accent);
}
.sht-sys__head{display:flex;justify-content:space-between;align-items:center;padding-bottom:.6rem;border-bottom:1px solid var(--sht-border);text-transform:uppercase}
.sht-sys__title{color:#fff;font-weight:800;letter-spacing:.1em;font-size:.85rem}
.sht-sys__live{display:inline-flex;align-items:center;gap:.4rem;color:var(--sht-accent);font-weight:700;font-size:.7rem}
.sht-sys__live-dot{width:6px;height:6px;background:var(--sht-accent);box-shadow:0 0 8px var(--sht-accent)}

.sht-sys__metrics{display:flex;flex-direction:column;gap:0;margin:0;padding:0}
.sht-sys__row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;border-bottom:1px dashed var(--sht-border);padding:.5rem 0}
.sht-sys__row:last-child{border-bottom:none}
.sht-sys__row dt{color:var(--sht-muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;margin:0}
.sht-sys__row dd{margin:0;color:#fff;font-size:1.1rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}

.sht-sys__divider{font-size:.7rem;color:var(--sht-accent);letter-spacing:.1em;text-transform:uppercase;padding:.45rem 0 .35rem;border-top:1px solid var(--sht-border-strong);position:relative;margin-top:.2rem}
.sht-sys__divider::after{content:'';position:absolute;left:0;top:-1px;width:32px;height:1px;background:var(--sht-accent);box-shadow:0 0 6px var(--sht-accent)}

.sht-sys__sections{width:100%;border-collapse:collapse;font-size:.74rem}
.sht-sys__sections th{text-align:left;color:#cfcfcf;font-weight:600;padding:.45rem 0;border-bottom:1px solid var(--sht-border);font-family:var(--sht-mono);text-transform:uppercase}
.sht-sys__sections td{padding:.45rem 0;border-bottom:1px solid var(--sht-border);font-variant-numeric:tabular-nums}
.sht-sys__sections tr:last-child th,.sht-sys__sections tr:last-child td{border-bottom:none}
.sht-sys__sec-link{color:var(--sht-accent);text-decoration:none;font-weight:700}
.sht-sys__sec-link:hover{text-shadow:0 0 8px var(--sht-accent)}
.sht-sys__num{color:#fff;font-weight:700;text-align:right;padding-right:.6rem!important;width:3.6rem}
.sht-sys__date{color:var(--sht-muted);text-align:right;width:5.5rem}

.sht-sys__last{display:flex;flex-direction:column;gap:.15rem;font-size:.78rem}
.sht-sys__last time{color:#fff;font-weight:700;font-variant-numeric:tabular-nums}
.sht-sys__last span{color:var(--sht-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}

.sht-sys__build{display:flex;align-items:center;gap:.4rem;color:#cfcfcf;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.sht-sys__caret{display:inline-block;width:7px;height:13px;background:var(--sht-accent);box-shadow:0 0 6px var(--sht-accent)}

.sht-sys__edit{margin-top:.4rem;display:inline-flex;color:var(--sht-accent);font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:.45rem .65rem;border:1px solid var(--sht-border-strong);align-self:flex-start;transition:background .15s ease}
.sht-sys__edit:hover{background:rgba(255,0,60,.08);text-shadow:0 0 6px var(--sht-accent)}

/* sys занимает всю высоту cell, чтобы выровняться с main */
.sht-home__cell--sys > .sht-sys{flex:1 1 auto}

/* ============= grid (archive tiles) ============= */

.sht-grid{margin:0 clamp(1rem,2.5vw,2rem) 2.5rem;display:grid;gap:0;grid-template-columns:1fr;border-top:1px solid var(--sht-border);border-left:1px solid var(--sht-border)}

.sht-tile{position:relative;display:flex;flex-direction:column;background:var(--sht-surface);border-right:1px solid var(--sht-border);border-bottom:1px solid var(--sht-border);overflow:hidden;min-height:0;transition:background .2s ease,border-color .2s ease}
.sht-tile:hover{background:#0f0204;box-shadow:inset 0 0 0 1px rgba(255,0,60,.18),0 0 30px -10px rgba(255,0,60,.45)}
.sht-tile:focus-within{outline:1px solid var(--sht-accent);outline-offset:-1px}

.sht-tile__bracket{position:absolute;width:14px;height:14px;border:1px solid var(--sht-accent);opacity:0;transition:opacity .2s ease,width .2s ease,height .2s ease;pointer-events:none;z-index:3}
.sht-tile__bracket--tl{top:6px;left:6px;border-right:none;border-bottom:none}
.sht-tile__bracket--tr{top:6px;right:6px;border-left:none;border-bottom:none}
.sht-tile__bracket--bl{bottom:6px;left:6px;border-right:none;border-top:none}
.sht-tile__bracket--br{bottom:6px;right:6px;border-left:none;border-top:none}
.sht-tile:hover .sht-tile__bracket{opacity:1;width:18px;height:18px}

.sht-tile__media{flex:0 0 auto;aspect-ratio:16/9;background:#070707 center/cover no-repeat;position:relative;border-bottom:1px solid var(--sht-border)}
.sht-tile__media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.55) 100%);pointer-events:none}
.sht-tile__media--placeholder{background:repeating-linear-gradient(135deg,#0a0a0a 0,#0a0a0a 6px,#0e0306 6px,#0e0306 7px),var(--sht-surface);display:flex;align-items:center;justify-content:center}
.sht-tile__media--placeholder::before{content:'';position:absolute;inset:14px;border:1px solid var(--sht-accent);opacity:.35;pointer-events:none}
.sht-tile__initials{font-family:var(--sht-mono);font-size:clamp(2rem,5vw,3.4rem);font-weight:800;color:var(--sht-accent);letter-spacing:.02em;text-shadow:0 0 22px rgba(255,0,60,.55);position:relative;z-index:1}

.sht-tile__body{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.1rem 1.1rem;flex:1 1 auto;min-width:0}
.sht-tile__topline{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap;font-family:var(--sht-mono);font-size:.7rem;letter-spacing:.06em;line-height:1;text-transform:uppercase}
.sht-tile__num{color:var(--sht-dim);font-weight:700;flex-shrink:0}
.sht-tile__section{color:var(--sht-accent);font-weight:700;text-decoration:none;position:relative;z-index:2}
.sht-tile__section:hover{text-shadow:0 0 8px var(--sht-accent)}

.sht-tile__title{margin:0;font-size:1.05rem;line-height:1.3;font-weight:800;letter-spacing:-.005em;color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sht-tile__title a{color:inherit;text-decoration:none;transition:color .15s ease}
.sht-tile__title a:hover{color:var(--sht-accent);text-shadow:none}
.sht-tile__link::after{content:'';position:absolute;inset:0;z-index:1}

.sht-tile__excerpt{margin:0;color:var(--sht-muted);font-size:.88rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.sht-tile__meta{margin-top:auto;display:flex;flex-wrap:wrap;gap:.4rem;color:var(--sht-dim);font-family:var(--sht-mono);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;padding-top:.55rem;border-top:1px solid var(--sht-border);align-items:center}
.sht-tile__author{color:#9a9a9a}

/* breakpoints: 1 / 2 / 3 / 4 columns
   <600  → 1 (телефоны портрет, в т.ч. с системным масштабом > 100%)
   ≥600  → 2
   ≥900  → 3
   ≥1200 → 4

   Пятиколоночного режима нет намеренно. На архивах стоит 12 материалов на
   страницу (functions.php), а 12 делится на 2, 3 и 4 — ряды всегда полные.
   На 5 не делится: получалось 5+5+2 и обрывок в последней строке. Меняя одно
   из чисел, держите их согласованными: число материалов должно быть кратно
   каждому варианту колонок. */
@media (min-width:600px){
  .sht-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:900px){
  .sht-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1200px){
  .sht-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sht-tile__title{font-size:1.1rem}
}

/* Сетка группы внутри раздела: показываем 6 свежих материалов, поэтому колонок
   максимум 3 — 6 делится на 2 и 3, ряды полные. Четвёртая колонка дала бы 4+2. */
@media (min-width:1200px){
  .sht-grid--group{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (prefers-reduced-motion:reduce){
  .sht-tile,.sht-tile__bracket{transition:none}
}

/* Здесь было правило «симметричные ряды»: оно прятало `display:none` хвост неполной
   последней строки, чтобы сетка выглядела ровным прямоугольником.

   Убрано намеренно. Пока навигация шла по рубрикам с сотнями публикаций и
   пагинацией по 12, хвоста почти не бывало. С переходом на теги появились архивы
   на 5–11 материалов, и правило начало скрывать до C−1 публикаций: #escvr
   показывал 4 из 7, #c2 — 8 из 11, а тег с единственным постом — пустую страницу,
   при том что в шапке значилось «7 ITEMS». Счётчик обещал одно, страница
   показывала другое.

   Неполный последний ряд с пустыми ячейками — обычное поведение сетки и читателю
   не мешает; спрятанный материал мешает. Если ровность рядов понадобится снова,
   решать её нужно не скрытием контента, а растягиванием последних плиток
   (`grid-column: span N`) или центрированием хвоста. */

/* ============= pagination (numeric, paginate_links) ============= */

.sht-paginate{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:2rem clamp(1rem,2.5vw,2rem) 3rem;border-top:1px solid var(--sht-border-strong);position:relative;font-family:var(--sht-mono)}
.sht-paginate::before{content:'';position:absolute;left:0;top:-1px;width:64px;height:1px;background:var(--sht-accent);box-shadow:0 0 8px var(--sht-accent)}
.sht-paginate .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;padding:.5rem .8rem;border:1px solid var(--sht-border-strong);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-decoration:none;color:var(--sht-accent);background:transparent;transition:background .15s ease,color .15s ease}
.sht-paginate a.page-numbers:hover{background:rgba(255,0,60,.08);text-shadow:0 0 8px var(--sht-accent)}
.sht-paginate .page-numbers.current{background:var(--sht-accent);color:#000;border-color:var(--sht-accent);text-shadow:none}
.sht-paginate .page-numbers.dots{border:none;color:var(--sht-dim);min-width:auto;padding:.5rem .3rem}
.sht-paginate .prev.page-numbers,.sht-paginate .next.page-numbers{padding:.5rem 1rem;letter-spacing:.08em;text-transform:uppercase}

/* ============= pager (prev/next, single + index) ============= */

.sht-pager{display:flex;justify-content:space-between;gap:1rem;padding:2rem clamp(1rem,2.5vw,2rem) 3rem;border-top:1px solid var(--sht-border-strong);position:relative}
.sht-pager::before{content:'';position:absolute;left:0;top:-1px;width:64px;height:1px;background:var(--sht-accent);box-shadow:0 0 8px var(--sht-accent)}
.sht-pager__link{font-family:var(--sht-mono);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sht-accent);text-decoration:none;padding:.6rem 1rem;border:1px solid var(--sht-border-strong);transition:background .15s ease}
.sht-pager__link:hover{background:rgba(255,0,60,.08);text-shadow:0 0 8px var(--sht-accent)}
.sht-pager__link--disabled{color:var(--sht-dim);border-color:var(--sht-border);cursor:not-allowed;pointer-events:none}

/* ============= article (single / page) ============= */

.sht-article{max-width:820px;width:100%;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,2.5vw,2rem) 4rem}
.sht-article__topline{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem;font-family:var(--sht-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sht-muted);margin-bottom:1.2rem;padding-bottom:.8rem;border-bottom:1px solid var(--sht-border)}
.sht-article__back{color:var(--sht-accent);text-decoration:none;font-weight:700}
.sht-article__back:hover{text-shadow:0 0 8px var(--sht-accent)}
.sht-article__section{color:var(--sht-accent);font-weight:700;text-decoration:none}
.sht-article__title{margin:0 0 1rem;font-size:clamp(1.8rem,4.5vw,3rem);line-height:1.05;letter-spacing:-.015em;font-weight:900;color:#fff}
.sht-article__meta{font-family:var(--sht-mono);font-size:.78rem;color:var(--sht-muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:2rem;padding-bottom:1.2rem;border-bottom:1px solid var(--sht-border-strong);position:relative}
.sht-article__meta::after{content:'';position:absolute;left:0;bottom:-1px;width:48px;height:1px;background:var(--sht-accent);box-shadow:0 0 8px var(--sht-accent)}
.sht-article__meta strong{color:#cfcfcf;font-weight:600}
.sht-article__thumb{margin:0 0 2rem;border:1px solid var(--sht-border-strong);background:#070707}
.sht-article__thumb img{display:block;width:100%;height:auto}

.sht-content{font-size:1.05rem;line-height:1.7;color:var(--sht-text);overflow-wrap:break-word}
.sht-content > *+*{margin-top:1.2rem}
.sht-content p{margin:0}
.sht-content h2,.sht-content h3,.sht-content h4{font-family:var(--sht-sans);color:#fff;letter-spacing:-.005em;margin-top:2.5rem;margin-bottom:.6rem;line-height:1.2;font-weight:800;position:relative;padding-left:1rem}
.sht-content h2{font-size:1.55rem;text-transform:uppercase}
.sht-content h2::before{content:'';position:absolute;left:0;top:.55rem;width:4px;height:1.2em;background:var(--sht-accent);box-shadow:0 0 8px rgba(255,0,60,.6)}
.sht-content h3{font-size:1.25rem}
.sht-content h3::before{content:'> ';position:absolute;left:0;color:var(--sht-accent);font-family:var(--sht-mono)}
.sht-content h4{font-size:1.1rem;padding-left:0;color:var(--sht-accent);font-family:var(--sht-mono);text-transform:uppercase;letter-spacing:.04em}
.sht-content a{color:var(--sht-accent);text-decoration:underline;text-decoration-color:rgba(255,0,60,.4);text-underline-offset:3px;transition:text-decoration-color .15s ease}
.sht-content a:hover{text-decoration-color:var(--sht-accent)}
.sht-content strong{color:#fff}
.sht-content em{color:#cfcfcf}
.sht-content blockquote{margin:1.5rem 0;padding:.6rem 1.2rem;border-left:3px solid var(--sht-accent);background:rgba(255,0,60,.04);font-style:italic;color:#cfcfcf}
.sht-content blockquote p{margin:.4rem 0}
.sht-content code{font-family:var(--sht-mono);font-size:.92em;background:#341820;color:#ff8499;padding:.1em .35em;border:1px solid var(--sht-border-strong);overflow-wrap:anywhere}
.sht-content pre{font-family:var(--sht-mono);background:#2c2c32;border:1px solid var(--sht-border-strong);padding:1rem 1.2rem;overflow-x:auto;font-size:.92rem;line-height:1.55;position:relative}
.sht-content pre::before{content:'';position:absolute;left:0;top:0;width:48px;height:2px;background:var(--sht-accent)}
.sht-content pre code{background:none;border:none;color:#e8e8e8;padding:0;overflow-wrap:normal}
.sht-content ul,.sht-content ol{padding-left:1.6rem;margin:0}
.sht-content ul li::marker{color:var(--sht-accent);content:'■  '}
.sht-content ol{counter-reset:sht-li;padding-left:0;list-style:none}
.sht-content ol > li{counter-increment:sht-li;position:relative;padding-left:2.2rem}
.sht-content ol > li::before{content:'[' counter(sht-li,decimal-leading-zero) ']';position:absolute;left:0;top:0;font-family:var(--sht-mono);font-size:.85em;color:var(--sht-accent);font-weight:700}
.sht-content hr{border:none;border-top:1px solid var(--sht-border-strong);margin:2.5rem 0;position:relative}
.sht-content hr::after{content:'//';position:absolute;left:50%;top:-.7em;transform:translateX(-50%);background:var(--sht-bg);padding:0 .8rem;font-family:var(--sht-mono);color:var(--sht-accent);font-size:.85rem}
.sht-content img,.sht-content figure{max-width:100%;height:auto;border:1px solid var(--sht-border)}
.sht-content video{display:block;max-width:100%;height:auto}
.sht-content figure{margin:1.5rem 0;background:#070707}
.sht-content figcaption{padding:.5rem .8rem;font-family:var(--sht-mono);font-size:.78rem;color:var(--sht-muted);border-top:1px solid var(--sht-border)}
.sht-content table{width:100%;border-collapse:collapse;font-size:.95rem}
.sht-content th,.sht-content td{padding:.6rem .8rem;border:1px solid var(--sht-border);text-align:left}
.sht-content th{background:#0e0204;color:#fff;font-family:var(--sht-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}

/* ============= footer ============= */

.sht-footer{position:relative;padding:0 clamp(1rem,2.5vw,2rem);color:var(--sht-muted);font-family:var(--sht-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;border-top:1px solid var(--sht-border-strong);margin-top:auto;background:#070707}
.sht-footer__line{position:absolute;left:0;top:-1px;width:64px;height:1px;background:var(--sht-accent);box-shadow:0 0 8px var(--sht-accent)}
.sht-footer__row{display:flex;flex-wrap:wrap;align-items:center;gap:0;max-width:1600px;margin:0 auto}
.sht-footer__cell{padding:1.1rem 1.25rem;border-right:1px solid var(--sht-border);text-decoration:none;color:inherit;display:inline-flex;align-items:center;transition:color .15s ease,background .15s ease}
.sht-footer__cell:last-child{border-right:none;margin-left:auto}
a.sht-footer__cell:hover{color:var(--sht-accent);background:rgba(255,0,60,.05);text-shadow:none}

@media (max-width:760px){
  .sht-footer__cell{padding:.9rem 1rem}
  .sht-footer__cell:last-child{margin-left:0}
}

/* Дисклеймер: нативный <dialog>, открывается ссылкой из подвала. */
.sht-disclaimer{width:min(720px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);padding:0;border:1px solid var(--sht-border-strong);background:var(--sht-surface);color:var(--sht-text);box-shadow:0 0 24px rgba(255,0,60,.15),0 20px 60px rgba(0,0,0,.6)}
.sht-disclaimer[open]{display:flex;flex-direction:column}
.sht-disclaimer::backdrop{background:rgba(0,0,0,.7)}
.sht-disclaimer__head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--sht-border)}
.sht-disclaimer__head::before{content:"";position:absolute;left:0;bottom:-1px;width:64px;height:1px;background:var(--sht-accent);box-shadow:0 0 8px var(--sht-accent)}
.sht-disclaimer__title{margin:0;font-family:var(--sht-mono);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sht-accent)}
.sht-disclaimer__head form{margin:0}
.sht-disclaimer__close{padding:.25rem .4rem;border:0;background:transparent;color:var(--sht-muted);font-family:var(--sht-mono);font-size:.8rem;cursor:pointer}
.sht-disclaimer__close:hover{color:var(--sht-accent)}
.sht-disclaimer__body{padding:1.25rem;overflow-y:auto;font-size:.95rem;line-height:1.65}
.sht-disclaimer__body p{margin:0 0 1em}
.sht-disclaimer__body p:last-child{margin-bottom:0}
html:has(.sht-disclaimer[open]){overflow:hidden}

/* ============= search ============= */

.sht-search-form{display:flex;align-items:stretch;gap:0;border:1px solid var(--sht-border-strong);background:#070707}
.sht-search-form input[type=search]{flex:1;background:transparent;border:none;color:var(--sht-text);padding:.7rem 1rem;font-family:var(--sht-mono);font-size:.92rem;outline:none}
.sht-search-form input[type=search]::placeholder{color:var(--sht-dim)}
.sht-search-form button{background:var(--sht-accent);color:#000;border:none;padding:.7rem 1.1rem;font-family:var(--sht-mono);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s ease}
.sht-search-form button:hover{background:#ff3360}

/* ============= 404 ============= */

.sht-404{padding:4rem clamp(1rem,2.5vw,2rem);text-align:left;max-width:700px}
.sht-404__code{font-family:var(--sht-mono);font-size:6rem;color:var(--sht-accent);line-height:1;font-weight:800;letter-spacing:.02em;text-shadow:0 0 30px rgba(255,0,60,.5)}
.sht-404__title{margin:1rem 0 1rem;font-size:2rem;color:#fff;text-transform:uppercase;letter-spacing:-.01em;font-weight:900}
.sht-404__body{color:var(--sht-muted);font-family:var(--sht-mono)}

/* ============= utilities / WP block compat ============= */

.alignleft{float:left;margin:.5rem 1.5rem 1rem 0;max-width:50%}
.alignright{float:right;margin:.5rem 0 1rem 1.5rem;max-width:50%}
.aligncenter{display:block;margin:1.5rem auto}
.alignwide{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:none}
.alignfull{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:none;width:100vw}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===========================================================================
   THEME TOGGLE (DARK/LIGHT)
   ---------------------------------------------------------------------------
   Базовая тема — тёмная (исторически заложена в CSS выше). Светлая
   подключается через атрибут html[data-theme="light"] и переопределяет
   только те значения, которые завязаны на тёмный фон (хардкод #fff/#000
   и тёмные поверхности). Базовые правила НЕ ТРОГАЕМ — это критично, чтобы
   тёмная тема осталась битово-эквивалентной прежней.

   Все light-оверрайды собраны одним блоком в конце файла, чтобы было видно
   полное покрытие и легко аудитить. Селекторы префиксованы html[data-theme]
   ради специфичности (1×attr+1×tag) — этого достаточно, чтобы перебить
   любую базовую запись на классе.
   =========================================================================== */

/* Кнопка переключения — рядом с языковым свитчером в .sht-actions.
   Стилизована заодно с ew-lang, чтобы визуально не выпадать из шапки. */
.sht-theme{display:inline-flex;align-items:stretch;border-left:1px solid var(--sht-border)}
.sht-theme__btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  min-width:46px;padding:0 .8rem;
  background:transparent;border:none;border-right:1px solid var(--sht-border);
  font-family:var(--sht-mono);font-size:.78rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:#9a9a9a;cursor:pointer;
  transition:background .15s ease,color .15s ease;
}
.sht-theme__btn:hover{background:rgba(255,0,60,.08);color:#fff}
.sht-theme__btn:focus-visible{outline:1px solid var(--sht-accent);outline-offset:-2px}
.sht-theme__icon{font-size:.95rem;line-height:1}
/* Кнопка показывает целевую тему — ту, на которую переключит. На тёмной — LIGHT, на светлой — DARK. */
.sht-theme__label--light,.sht-theme__icon--light{display:inline}
.sht-theme__label--dark,.sht-theme__icon--dark{display:none}
@media (max-width:640px){
  .sht-theme{order:1;border-left:none;width:auto}
  .sht-theme__btn{padding:.85rem 1rem}
}

/* ============= THEME TRANSITION (DARK ⇄ LIGHT) =============
   Сканлиния-переход при переключении темы:
   тонкая красно-белая сканирующая горизонталь идёт сверху вниз через viewport.
   Под ней — в момент, когда линия проходит середину экрана — меняется data-theme,
   и фон/цвета плавно (.18s) интерполируются. ~350ms суммарно. */
.sht-theme-flash{
  position:fixed;inset:0;z-index:99999;pointer-events:none;overflow:hidden;
}
.sht-theme-flash::before{
  content:'';position:absolute;left:0;right:0;top:-3px;height:2px;
  background:linear-gradient(90deg,
    transparent 0%,
    var(--sht-accent) 45%,
    #fff 50%,
    var(--sht-accent) 55%,
    transparent 100%);
  box-shadow:0 0 14px var(--sht-accent),0 0 28px rgba(255,0,60,.5);
  opacity:0;
  animation:sht-theme-scanline .35s linear forwards;
}
@keyframes sht-theme-scanline{
  0%   {top:-3px; opacity:0}
  10%  {opacity:.95}
  90%  {opacity:.95}
  100% {top:calc(100% + 2px); opacity:0}
}

/* Цветовая интерполяция включается только пока крутится flash —
   чтобы ховеры/анимации в обычном режиме оставались моментальными. */
html.sht-theme-transitioning,
html.sht-theme-transitioning body,
html.sht-theme-transitioning .sht-header,
html.sht-theme-transitioning .sht-blog__dropdown,
html.sht-theme-transitioning .sht-blog__item,
html.sht-theme-transitioning .sht-feat,
html.sht-theme-transitioning .sht-tile,
html.sht-theme-transitioning .sht-sys,
html.sht-theme-transitioning .sht-row,
html.sht-theme-transitioning .sht-row__title,
html.sht-theme-transitioning .sht-article__title,
html.sht-theme-transitioning .sht-content,
html.sht-theme-transitioning .sht-content pre,
html.sht-theme-transitioning .sht-content code,
html.sht-theme-transitioning .sht-content blockquote,
html.sht-theme-transitioning .sht-content figure,
html.sht-theme-transitioning .sht-footer,
html.sht-theme-transitioning .sht-search-form,
html.sht-theme-transitioning .sht-paginate .page-numbers,
html.sht-theme-transitioning .ew-lang__btn,
html.sht-theme-transitioning .sht-theme__btn,
html.sht-theme-transitioning .rp-telemetry,
html.sht-theme-transitioning .rp-item__title,
html.sht-theme-transitioning .rp-item__excerpt{
  transition: background-color .18s linear, color .18s linear, border-color .18s linear, box-shadow .18s linear;
}

@media (prefers-reduced-motion:reduce){
  .sht-theme-flash{display:none}
  html.sht-theme-transitioning,
  html.sht-theme-transitioning *{transition:none !important}
}

/* ============= LIGHT THEME ============= */
html[data-theme="light"]{
  color-scheme:light;
  --sht-bg:#f5f4f6;
  --sht-surface:#ffffff;
  --sht-border:#e2d6da;
  --sht-border-strong:#c1002b;
  --sht-text:#1a1a1a;
  --sht-muted:#5a5a5a;
  --sht-dim:#8a8a8a;
  --sht-accent:#c8002e;
}
html[data-theme="light"] body{
  background:var(--sht-bg);color:var(--sht-text);
  background-image:radial-gradient(ellipse at 30% -10%,rgba(200,0,46,.06) 0,transparent 55%);
}
html[data-theme="light"] ::selection{background:var(--sht-accent);color:#fff}
html[data-theme="light"] a:hover{text-shadow:0 0 8px rgba(200,0,46,.35)}

/* Переключатель: меняем стрелку лейбла. */
html[data-theme="light"] .sht-theme__btn{color:#5a5a5a}
html[data-theme="light"] .sht-theme__btn:hover{color:#000}
html[data-theme="light"] .sht-theme__label--light,
html[data-theme="light"] .sht-theme__icon--light{display:none}
html[data-theme="light"] .sht-theme__label--dark,
html[data-theme="light"] .sht-theme__icon--dark{display:inline}

/* Header */
html[data-theme="light"] .sht-header{background:rgba(255,255,255,.86);border-bottom-color:var(--sht-border-strong)}
html[data-theme="light"] .sht-brand__name{color:#111}
html[data-theme="light"] .sht-brand__sub{color:var(--sht-muted)}
html[data-theme="light"] .sht-nav__item{color:#5a5a5a}
html[data-theme="light"] .sht-nav__item:hover{background:rgba(200,0,46,.08);color:#000}
html[data-theme="light"] .sht-nav__item.is-active{background:rgba(200,0,46,.12);color:#000}
html[data-theme="light"] .ew-lang__btn{color:#5a5a5a}
html[data-theme="light"] .ew-lang__btn:hover{color:#000}
html[data-theme="light"] .ew-lang__btn.is-active{color:#fff}

/* Hero / row hover / list */
html[data-theme="light"] .sht-row:hover{background:#fbeef1}
html[data-theme="light"] .sht-row:hover::before{box-shadow:0 0 12px rgba(200,0,46,.45)}

/* Featured cards */
html[data-theme="light"] .sht-feat:hover{background:#fdeaef;box-shadow:inset 0 0 0 1px rgba(200,0,46,.18),0 6px 22px -10px rgba(200,0,46,.35)}
html[data-theme="light"] .sht-feat__media{background-color:#efe7ea}
html[data-theme="light"] .sht-feat__media::after{background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.18) 100%)}
html[data-theme="light"] .sht-feat__media--placeholder{background:repeating-linear-gradient(135deg,#fbeaef 0,#fbeaef 6px,#f3d6dd 6px,#f3d6dd 7px),var(--sht-surface)}
html[data-theme="light"] .sht-feat__title{color:#111}
html[data-theme="light"] .sht-feat__meta strong{color:#222}

/* Tiles (grid) */
html[data-theme="light"] .sht-tile:hover{background:#fdeaef;box-shadow:inset 0 0 0 1px rgba(200,0,46,.18),0 6px 22px -10px rgba(200,0,46,.35)}
html[data-theme="light"] .sht-tile__media{background-color:#efe7ea}
html[data-theme="light"] .sht-tile__media::after{background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.18) 100%)}
html[data-theme="light"] .sht-tile__media--placeholder{background:repeating-linear-gradient(135deg,#fbeaef 0,#fbeaef 6px,#f3d6dd 6px,#f3d6dd 7px),var(--sht-surface)}
html[data-theme="light"] .sht-tile__title{color:#111}
html[data-theme="light"] .sht-tile__author{color:var(--sht-muted)}

/* Sys panel */
/* Метапанели (SYS_TELEMETRY / DOC_META / AUTHOR_META) теперь используют var(--sht-bg)
   как фон в базовом правиле, так что в обеих темах сливаются с фоном страницы.
   Здесь только тонкая граница и приглушённый текст для светлой темы. */
html[data-theme="light"] .sht-sys{background:transparent;color:var(--sht-muted);border:none}
html[data-theme="light"] .sht-sys__title{color:#111}
html[data-theme="light"] .sht-sys__row dd{color:#111}
html[data-theme="light"] .sht-sys__sections th{color:#222}
html[data-theme="light"] .sht-sys__num{color:#111}
html[data-theme="light"] .sht-sys__last time{color:#111}
html[data-theme="light"] .sht-sys__build{color:#333}

/* Hero / большие заголовки страниц-листингов («ВСЕ МАТЕРИАЛЫ», «THREAT INTELLIGENCE», SEARCH и т.д.). */
html[data-theme="light"] .sht-hero__title{color:#111}
/* Заголовок-список (index.php / устаревший вид) */
html[data-theme="light"] .sht-row__title{color:#111}
/* Кнопка «БЛОГ» и дропдаун разделов в светлой теме. */
html[data-theme="light"] .sht-blog__link{color:#111}
html[data-theme="light"] .sht-blog__dropdown{background:#fff;border-color:var(--sht-border-strong)}
html[data-theme="light"] .sht-blog__item{color:var(--sht-muted);border-color:var(--sht-border)}
html[data-theme="light"] .sht-blog__item:hover{color:#111}
html[data-theme="light"] .sht-blog__item.is-active{color:#111}

@media (max-width:640px){
  html[data-theme="light"] .sht-blog__link{color:#000 !important;border-left-color:var(--sht-border)}
}

/* Single post: заголовок и мета. */
html[data-theme="light"] .sht-article__title{color:#111}
html[data-theme="light"] .sht-article__meta strong{color:#222}
html[data-theme="light"] .sht-article__thumb{background:#efe7ea}
html[data-theme="light"] .sht-feat__meta a{color:#222}

/* Article content: заголовки секций h2/h3 и фигура. */
html[data-theme="light"] .sht-content h2,
html[data-theme="light"] .sht-content h3{color:#111}
html[data-theme="light"] .sht-content figure{background:#efe7ea}

/* Article content */
html[data-theme="light"] .sht-content strong{color:#000}
html[data-theme="light"] .sht-content em{color:#222}
html[data-theme="light"] .sht-content blockquote{color:#222;background:rgba(200,0,46,.05)}
html[data-theme="light"] .sht-content code{background:#fde7ec;color:#a30022;border-color:rgba(200,0,46,.2)}
/* Блоки кода: светлый фон + тёмный текст. Тёмная подложка прежнего стиля
   делала невидимыми токены подсветчика (Syntax Highlighting Code Block / Prism),
   у которых цвета по умолчанию рассчитаны на светлый фон. */
html[data-theme="light"] .sht-content pre,
html[data-theme="light"] .sht-content .wp-block-code,
html[data-theme="light"] .sht-content pre.wp-block-code{background:#f5eff1;color:#1a1a1a;border-color:#d8c8cc}
html[data-theme="light"] .sht-content pre code{color:#1a1a1a;background:transparent}
html[data-theme="light"] .sht-content th{background:#f3e7ea;color:#111}

/* Article hero/article meta — текст уже из переменных */

/* Pagination */
html[data-theme="light"] .sht-paginate .page-numbers{color:var(--sht-accent)}
html[data-theme="light"] .sht-paginate a.page-numbers:hover{background:rgba(200,0,46,.08)}
html[data-theme="light"] .sht-paginate .page-numbers.current{background:var(--sht-accent);color:#fff;border-color:var(--sht-accent)}

/* Search */
html[data-theme="light"] .sht-search-form{background:#fff;border-color:var(--sht-border-strong)}
html[data-theme="light"] .sht-search-form button{color:#fff}
html[data-theme="light"] .sht-search-form button:hover{background:#a3001f}

/* 404 */
html[data-theme="light"] .sht-404__title{color:#111}

/* Footer */
html[data-theme="light"] .sht-footer{background:#fbf7f8}
html[data-theme="light"] a.sht-footer__cell:hover{background:rgba(200,0,46,.05)}

/* Sidebars (Related Posts MU-plugin) — фон/границы наследуют var(--sht-border) и var(--sht-text). */
html[data-theme="light"] .rp-item__title{color:#111}

/* Заметка: статусные точки ::selection, акцентные тени и кейлайны намеренно
   оставлены красными — фирменный цвет работает на обоих фонах. */


/* ---------------------------------------------------------------------------
   Разделы как группы тегов (section.php)
   -------------------------------------------------------------------------- */
.sht-group{margin:0 0 3rem}
.sht-group__head{display:flex;align-items:baseline;gap:.9rem;margin:0 clamp(1rem,2.5vw,2rem) .75rem;padding-bottom:.6rem;border-bottom:1px solid var(--sht-border-strong)}
.sht-group__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 clamp(1rem,2.5vw,2rem) 1rem}
.sht-group__title{margin:0;font-size:clamp(1.1rem,2.2vw,1.5rem);font-weight:900;letter-spacing:-.01em;text-transform:uppercase;color:#fff}
.sht-group__count{margin-left:auto;font-family:var(--sht-mono);font-size:.8rem;font-weight:600;color:var(--sht-accent);border:1px solid var(--sht-border-strong);padding:.15rem .5rem;background:rgba(255,0,60,.05)}
.sht-group__more{margin:.75rem clamp(1rem,2.5vw,2rem) 0;font-family:var(--sht-mono);font-size:.75rem;color:var(--sht-dim);letter-spacing:.03em}
/* Заголовок группы и строка «ещё N» стали ссылками на страницу группы. Общий
   стиль ссылок (акцентный цвет + подчёркивание) здесь бил по вёрстке: заголовок
   был белым, строка — приглушённой. Цвет наследуем, кликабельность показываем
   на наведении. */
.sht-group__title a,.sht-group__more a{color:inherit;text-decoration:none}
.sht-group__title a:hover,.sht-group__title a:focus-visible{color:var(--sht-accent)}
.sht-group__more a:hover,.sht-group__more a:focus-visible{color:var(--sht-accent);text-decoration:underline}

html[data-theme="light"] .sht-group__title{color:#111}

/* ---------------------------------------------------------------------------
   Hero раздела: заголовок + облако тегов справа
   На узких экранах колонки схлопываются, теги уходят под заголовок.
   -------------------------------------------------------------------------- */
.sht-hero__tags{margin-top:1.75rem}
.sht-hero__tags-label{margin:0 0 .6rem;font-family:var(--sht-mono);font-size:.72rem;letter-spacing:.12em;color:var(--sht-dim);text-transform:uppercase}
.sht-hero__tags-list{display:flex;flex-wrap:wrap;gap:.4rem}

@media (min-width:1100px){
  .sht-hero--split{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,40%);gap:clamp(1.5rem,3vw,3rem);align-items:start}
  /* Отступ сверху выравнивает облако по нижней кромке eyebrow-плашки. */
  .sht-hero__tags{margin-top:.35rem}
  .sht-hero__tags-list{max-height:15rem;overflow-y:auto;padding-right:.35rem;align-content:flex-start}
  .sht-hero__tags-list::-webkit-scrollbar{width:6px}
  .sht-hero__tags-list::-webkit-scrollbar-thumb{background:var(--sht-border-strong)}
}

/* Чип тега — общий компонент: hero раздела, группы, страница тега. */
.sht-chip{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--sht-mono);font-size:.74rem;letter-spacing:.03em;color:var(--sht-muted);text-decoration:none;border:1px solid var(--sht-border);padding:.22rem .5rem;background:var(--sht-surface);transition:color .15s ease,border-color .15s ease,background .15s ease}
.sht-chip:hover,.sht-chip:focus-visible{color:#fff;border-color:var(--sht-accent);background:rgba(255,0,60,.08)}
.sht-chip__count{color:var(--sht-dim);font-size:.68rem}
.sht-chip:hover .sht-chip__count{color:var(--sht-accent)}
.sht-chip.is-current{color:#fff;border-color:var(--sht-accent);background:rgba(255,0,60,.12)}

html[data-theme="light"] .sht-chip{color:#444;border-color:#d8d8dc;background:#fff}
html[data-theme="light"] .sht-chip:hover{color:#111}
html[data-theme="light"] .sht-hero__tags-label{color:#6a6a72}

/* Хлебные крошки на странице тега: откуда пришли и в какой группе тег. */
.sht-crumbs{margin:0 0 1.1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-family:var(--sht-mono);font-size:.8rem}
.sht-crumbs__link{color:var(--sht-accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}
.sht-crumbs__link:hover,.sht-crumbs__link:focus-visible{border-bottom-color:var(--sht-accent)}
.sht-crumbs__sep{color:var(--sht-dim)}
.sht-crumbs__group{color:var(--sht-dim);letter-spacing:.04em}

/* На узких экранах чипы — цель для пальца, а не для курсора. */
@media (max-width:760px){
  .sht-chip{padding:.5rem .7rem;font-size:.78rem}
  .sht-chip__count{font-size:.72rem}
  .sht-hero__tags-list{gap:.5rem}
}

/* Чип раздела на странице тега — крупнее тегового, это переход на уровень выше. */
.sht-chip--section{font-size:.82rem;padding:.42rem .7rem;font-weight:600;letter-spacing:.02em;color:var(--sht-text)}
.sht-chip--section .sht-chip__count{font-size:.72rem}
.sht-hero__sections .sht-hero__tags-list{max-height:none}
html[data-theme="light"] .sht-chip--section{color:#111}

/* ---------------------------------------------------------------------------
   Лендинг PT ESC (главная страница, front-page.php)
   -------------------------------------------------------------------------- */
.sht-landing__lede-2{margin-top:1rem;max-width:760px}
.sht-landing__hero-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:1.75rem}
.sht-landing__telegram{font-family:var(--sht-mono);font-size:.82rem;letter-spacing:.04em;color:var(--sht-muted);text-decoration:none;transition:color .15s ease}
.sht-landing__telegram:hover{color:var(--sht-accent);text-shadow:0 0 8px rgba(255,0,60,.4)}

.sht-landing__section{margin:0 0 3rem;padding:0 clamp(1rem,2.5vw,2rem)}
.sht-landing__heading{margin:0 0 1.25rem;font-size:clamp(1.2rem,2.4vw,1.7rem);font-weight:900;letter-spacing:-.01em;text-transform:uppercase;color:#fff}

.sht-landing__cards{display:grid;gap:1px;background:var(--sht-border)}
.sht-landing__cards--2{grid-template-columns:1fr}
.sht-landing__cards--3{grid-template-columns:1fr}
@media (min-width:760px){
  .sht-landing__cards--2{grid-template-columns:1fr 1fr}
  .sht-landing__cards--3{grid-template-columns:1fr 1fr}
}
@media (min-width:1100px){
  .sht-landing__cards--3{grid-template-columns:1fr 1fr 1fr}
}

.sht-landing__card{display:flex;flex-direction:column;gap:.6rem;padding:1.4rem 1.5rem;background:var(--sht-surface);text-decoration:none;color:inherit;transition:background .2s ease}
a.sht-landing__card:hover{background:#0f0204;box-shadow:inset 0 0 0 1px rgba(255,0,60,.18)}
.sht-landing__card--static{cursor:default}
.sht-landing__card-eyebrow{font-family:var(--sht-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sht-dim);font-weight:700}
a.sht-landing__card:hover .sht-landing__card-eyebrow{color:var(--sht-accent)}
.sht-landing__card-title{font-size:1.05rem;font-weight:700;color:#fff;line-height:1.35}
.sht-landing__card-text{margin:0;font-family:var(--sht-sans);font-size:.92rem;color:var(--sht-muted);line-height:1.6}
.sht-landing__card-link{margin-top:auto;font-family:var(--sht-mono);font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--sht-accent)}

.sht-landing__more{margin:0 clamp(1rem,2.5vw,2rem);font-family:var(--sht-mono);font-size:.82rem}
.sht-landing__more a{color:var(--sht-accent);text-decoration:none}
.sht-landing__more a:hover{text-decoration:underline}

/* Плитки статистики ("Экспертиза в цифрах") */
.sht-landing__stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--sht-border)}
@media (min-width:760px){
  .sht-landing__stats{grid-template-columns:1fr 1fr 1fr}
}
.sht-landing__stat{display:flex;flex-direction:column;gap:.4rem;padding:1.4rem 1.5rem;background:var(--sht-surface)}
.sht-landing__stat-num{font-family:var(--sht-mono);font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;color:var(--sht-accent);letter-spacing:-.01em;line-height:1}
.sht-landing__stat-label{font-family:var(--sht-sans);font-size:.85rem;color:var(--sht-muted);line-height:1.5}

/* Текстовые блоки без карточек ("Опыт защиты значимых объектов", закрывающая секция) */
.sht-landing__prose{max-width:860px;display:flex;flex-direction:column;gap:1rem}
.sht-landing__prose p{margin:0;font-family:var(--sht-sans);font-size:1rem;color:var(--sht-muted);line-height:1.7}

html[data-theme="light"] .sht-landing__heading{color:#111}
html[data-theme="light"] .sht-landing__telegram{color:var(--sht-muted)}
html[data-theme="light"] a.sht-landing__card:hover{background:#fdeaef;box-shadow:inset 0 0 0 1px rgba(200,0,46,.18)}
html[data-theme="light"] .sht-landing__card-title{color:#111}
