/* ===========================================================================
   Тема SWISS / МИНИМАЛИЗМ  (International Typographic Style)
   Чистый sans · сетка · много воздуха · флаговая (ragged-right) вёрстка ·
   тонкие линейки · красный акцент дозированно. Form-agnostic: весь контракт.
   =========================================================================== */
:root{
  color-scheme: only light; /* гасит Chrome Auto-Dark инверсию (поймано в реальном браузере 2026-06-11) */
  --bg:#ffffff; --paper:#ffffff; --ink:#141414; --muted:#767676;
  --accent:#e2231a; --rule:#e6e6e6; --rule-strong:#141414; --hl:#fff1b8;
  --sans:"Helvetica Neue","Helvetica","Arial",system-ui,sans-serif;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:18px; line-height:1.6; -webkit-font-smoothing:antialiased;}
.wrap{max-width:720px; margin:0 auto; padding:1.5rem 1.6rem 5rem;}
.wrap.wide{max-width:1080px;}

header.breadcrumbs{font-size:.78rem; letter-spacing:.02em; color:var(--muted);
  margin-bottom:2.4rem; padding-bottom:.7rem; border-bottom:1px solid var(--rule);}
header.breadcrumbs a{color:var(--muted); text-decoration:none;}
header.breadcrumbs a:hover{color:var(--accent);}
header.breadcrumbs .sep{margin:0 .45rem; color:#c8c8c8;}

img.cover{display:block; max-width:100%; height:auto; margin:0 0 2rem;}

h1#article-title{font-weight:700; font-size:2.7rem; line-height:1.04; letter-spacing:-.02em;
  color:var(--ink); margin:.1em 0 .8rem;}  /* без max-width: H1 по ширине колонки (не переносился рано на wide) */
p.byline{font-size:.82rem; color:var(--muted); margin:0 0 2.4rem; letter-spacing:.01em;}
p.byline a{color:var(--muted);}

/* Мера НЕ ограничивается темой: «wide» должна быть широкой (вердикт оператора
   2026-06-11); узкая мера = per-article `width: narrow`. */
article{margin:0;}
article p{margin:0 0 1.2rem; text-align:left;}
article p:first-of-type{margin-top:0;}
article p.attribution{color:var(--muted); margin:0 0 2rem;}
article p.colophon{color:var(--muted); font-size:.8rem; margin:3rem 0 0; padding-top:1rem; border-top:1px solid var(--rule); max-width:none;}

article h2,article h3{font-weight:700; color:var(--ink); text-align:left; letter-spacing:-.01em;}
article h2{font-size:1.5rem; line-height:1.15; margin:3rem 0 1rem;}
article h3{font-size:1.18rem; margin:2.2rem 0 .7rem;}
article h2.subtitle{font-weight:400; color:var(--muted); font-size:1.25rem; margin:.4rem 0 2rem;}
article h2 .back-to-toc,article h3 .back-to-toc{text-decoration:none; font-size:.62em; color:#bdbdbd; margin-left:.6rem; vertical-align:middle; font-weight:400;}
article h2 .back-to-toc:hover,article h3 .back-to-toc:hover{color:var(--accent);}

details.article-toc{display:block; margin:2.4rem 0; padding:1rem 0;
  border-top:2px solid var(--rule-strong); border-bottom:1px solid var(--rule);}
details.article-toc:first-child{margin-top:0;}
details.article-toc summary{cursor:pointer; list-style:none; color:var(--ink);
  font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700;}
details.article-toc summary::-webkit-details-marker{display:none;}
details.article-toc summary::after{content:" +"; color:var(--accent);}
details[open].article-toc summary::after{content:" –"; color:var(--accent);}
details.article-toc ol{margin:1rem 0 0; padding:0; list-style:none; counter-reset:toc;}
details.article-toc ol li{margin:.4rem 0; padding-left:2.2rem; position:relative; counter-increment:toc;}
details.article-toc ol li::before{content:counter(toc,decimal-leading-zero); position:absolute; left:0; color:var(--accent); font-size:.8rem; font-weight:700;}
details.article-toc a{color:var(--ink); text-decoration:none;}
details.article-toc a:hover{color:var(--accent);}

.poem{font-family:var(--sans); font-size:1.05rem; line-height:1.55; white-space:pre-wrap;
  width:fit-content; max-width:80%; margin:2rem 0; color:var(--ink);}
.poem .poem-title{display:block; font-weight:700; margin-bottom:.7rem;}

.epigraph,.epilogue,blockquote.q{background:transparent; position:relative;
  padding:.2rem 0 .2rem 1.6rem; margin:2rem 0; border-left:2px solid var(--rule-strong);}
.epigraph::before,.epilogue::before,blockquote.q::before{content:attr(data-label); display:block;
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:.5rem;}
.epigraph .cite,.epilogue .cite,blockquote.q .cite{display:block; color:var(--muted); font-size:.85rem; margin-top:.5rem;}
.epigraph p,.epilogue p,blockquote.q p{text-align:left; text-indent:0; font-style:normal;}

ol.num{margin:1.4rem 0; padding-left:2.4rem;}
ol.num li{margin-bottom:.8rem;}
ol.num li::marker{color:var(--accent); font-weight:700;}
ol.num li p{text-indent:0;}

.music-group{background:transparent; border-top:2px solid var(--rule-strong); border-bottom:1px solid var(--rule);
  padding:1.8rem 0 .8rem; margin:2rem 0; position:relative;}
.music-group::before{content:attr(data-label); position:absolute; top:.5rem; left:0;
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);}
.music-group.has-heading::before{display:none;}
.music-group.has-label-row::before{display:none;}
.music-group .music-label{position:absolute; top:.5rem; left:0; margin:0;
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);}
.music-group>details.music,.music-group>.music-noplayer{margin:0 0 .3rem; background:transparent; border:none;}
.music-group>:last-child{margin-bottom:0;}
.music-group .label{display:none;}
details.music summary,.music-noplayer .summary{padding:.4rem 0; cursor:pointer; list-style:none; font-size:.92rem;}
details.music summary::-webkit-details-marker{display:none;}
.music-noplayer{background:transparent;}
details.music summary .title,.music-noplayer .summary .title{color:var(--ink); font-weight:500;}
details.music summary .caret{color:var(--accent); margin-left:.4rem; display:inline-block; transition:transform .15s;}
details.music[open] summary .caret{transform:rotate(90deg);}
details.music summary .ext{color:var(--muted); text-decoration:none; margin-left:.6rem; font-size:.9em;}
details.music summary .ext:hover{color:var(--accent);}
details.music .player{padding:.5rem 0 .6rem;}
details.music .player iframe{display:block; width:100%; aspect-ratio:16/9; border:0;}

a{color:var(--accent); text-decoration:none;}
a:hover{text-decoration:underline;}
em{font-style:italic;} strong{font-weight:700;}
a.internal{color:var(--ink); text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:3px;}
a.internal:hover{color:var(--accent);}
a.zohar{color:var(--ink); text-decoration:underline; text-decoration-color:#c8a23a; text-underline-offset:3px;}
a.zohar:hover{color:#a07a18;}
a.broken{color:#b00; text-decoration:line-through;}

.sb{font-weight:600; letter-spacing:.04em;}

sup a{text-decoration:none; color:var(--accent);}
sup a:hover{text-decoration:underline;}
ol.notes{margin:0; padding-left:1.8rem; font-size:.9rem; color:var(--muted);}
ol.notes li{margin-bottom:.6rem;}
ol.notes a{color:var(--muted); text-decoration:underline;}
ol.notes a.backref{text-decoration:none; margin-right:.3rem; color:var(--accent);}
ol.notes li.anon{list-style:none; margin-left:0;}
ol.notes li.anon:first-of-type{margin-top:.9rem;}
ol.notes li:target,sup:target a{background:var(--hl);}

.footnote-bubble{position:absolute; z-index:1000; max-width:28rem; background:#fff; color:var(--ink);
  border:1px solid var(--rule-strong); box-shadow:0 8px 24px rgba(0,0,0,.12);
  padding:.8rem 1rem; font-size:.88rem; line-height:1.5; opacity:0;
  transform:translateY(4px) scale(.96); transform-origin:bottom center; pointer-events:none;
  transition:opacity .15s ease, transform .15s ease;}
.footnote-bubble.show{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
.footnote-bubble.below{transform-origin:top center;}
.footnote-bubble::after{content:""; position:absolute; left:50%; margin-left:-7px; width:0; height:0;
  border:7px solid transparent; border-top-color:#fff; bottom:-14px; filter:drop-shadow(0 1px 0 var(--rule-strong));}
.footnote-bubble.below::after{bottom:auto; top:-14px; border-top-color:transparent; border-bottom-color:#fff; filter:drop-shadow(0 -1px 0 var(--rule-strong));}
.footnote-bubble a{color:var(--accent);}

nav.article-nav{display:flex; justify-content:space-between; gap:1rem; margin-top:3rem;
  padding-top:1rem; border-top:2px solid var(--rule-strong); font-size:.88rem;}
nav.article-nav a{text-decoration:none;}
footer.footer{margin-top:3.5rem; padding-top:1rem; border-top:1px solid var(--rule);
  color:var(--muted); font-size:.8rem; text-align:left;}
footer.footer p{margin:.35rem 0; line-height:1.5;}
footer.footer a{color:var(--muted); text-decoration:underline;}

/* — ZML3-элементы (фаза сборки): сдержанно — глифы/term акцентом, sig muted — */
.glyph{color:var(--accent);}
.sig{color:var(--muted);}
.cry{letter-spacing:.03em;}
.term{text-decoration-color:var(--accent);}
.leit{font-style:italic;}
/* ── .viewbar — управление видом статьи (тема/ширина/оригинал/править) ── */
.viewbar{font-size:.74rem; letter-spacing:.02em; color:var(--muted);}
.viewbar select{border-bottom-color:var(--rule);}
.viewbar select:hover{color:var(--accent);}
.viewbar a{color:var(--muted);}
.viewbar a:hover{color:var(--accent);}
/* — fn-ревью (2026-06-12): [line], [ul], H1-sup, dedication, ### в TOC — */
p.line{color:var(--muted); font-size:.84rem; letter-spacing:.02em;}
p.line-dateline{font-style:normal;}
ul.ul{--marker:"— ";}
ul.ul li{margin-bottom:.45rem;}
ul.ul li::marker{color:var(--accent);}
h1#article-title sup a{color:var(--accent); font-weight:400;}
/* — ZML3 polish (сборка 2026-06-17): audio-🎧 · sec-sub · verse-эпиграф — */
.audio-link{filter:grayscale(1); opacity:.7; transition:filter .15s, opacity .15s;}
.audio-link:hover{filter:grayscale(.15); opacity:1;}
.sec-sub{font-style:normal; color:var(--muted); opacity:1;}
.meta .epi{color:var(--ink);}  /* swiss: дек обычным текстом, без кримсона (кант остаётся акцентным) */
.epigraph.dedication p,.epilogue.dedication p{text-align:right;}
details.article-toc ol ol{font-size:.92em;}
/* ── [shir] плитка муз-грида (ZML3 §6.7) — swiss: плоско, острые углы, чёрная верхняя линейка ── */
.songgrid .song{background:#fff; border:1px solid var(--rule);
  border-top:3px solid var(--rule-strong); border-radius:0; box-shadow:none;}
.songgrid .song:hover{border-color:var(--accent);}
.songgrid .song .yt:hover .play{background:var(--accent);}
.songgrid .song .t{font-weight:700; color:var(--ink); letter-spacing:-.01em;}
.songgrid .song .t .trk-sep{color:var(--accent);}
.songgrid .song .t .trk-art{font-weight:400; color:var(--muted); opacity:1;}
.songgrid .song .a a{color:var(--ink); border-bottom:1px solid var(--rule);}
.songgrid .song .a a:hover{color:var(--accent); border-bottom-color:var(--accent);}
.songgrid .song .a .sep{color:var(--accent); opacity:1;}

/* ── [faw] free-associative writing — стихи, записанные прозой ────────────────
   swiss: МОНОЛИТ (inline), чередование прямой / КУРСИВ в обычном цвете (не серым) —
   границы строк читаются сменой начертания, без украшательств. */
.faw{font-family:var(--sans); margin:1.7rem 0; line-height:1.66;}
.faw-l{display:inline;}
.faw-l.a{color:var(--ink);}
.faw-l.b{font-style:italic; color:var(--ink);}
