/* Новости → Журнал (public/terminal/journal.js): полка, книга с объёмным перелистыванием, развороты-фотокомиксы.
   Стилистика своя и одна во всех темах терминала — тёмный графический роман FINFACTS: глубокий чёрный лист, кадры в светлых рамках
   с растром и контрастом, плашки подписей с янтарной кромкой, белые «пузыри» с репликами прописными. Размеры внутри страницы — в cqw
   (страница — контейнер), поэтому разворот одинаково свёрстан на любом размере. */
.jr{--k-bg:#0b0d11;--k-bg2:#11151b;--k-line:#222a35;--k-tx:#ece9e2;--k-dim:#8b94a1;--k-amb:#f0a63c;--k-frame:#e9e5dc;height:100%;overflow:hidden;background:var(--bg)}
.jr-note{padding:24px;color:var(--dim);font-size:12px}
.jr-dim{color:var(--dim)}
.jr-off{color:var(--amber)}
/* ── полка ── */
.jr-shelf{height:100%;overflow:auto;padding:16px 18px 28px;box-sizing:border-box}
.jr-sh{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 24px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px}
.jr-mast{display:flex;align-items:baseline;gap:10px;font:800 28px/1 var(--sans);letter-spacing:.14em;color:var(--tx)}
.jr-mast i{width:28px;height:3px;background:var(--amber);align-self:center}
.jr-mast small{font:400 10px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.jr-st{font-size:11px;color:var(--dim)}
.jr-st b{color:var(--amber);font-weight:500}
.jr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px}
.jr-card{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:7px;min-width:0}
.jr-card:focus-visible .jr-cv{outline:2px solid var(--amber);outline-offset:3px}
.jr-cv{position:relative;aspect-ratio:2/3;overflow:hidden;background:#07080a;box-shadow:0 14px 34px rgba(0,0,0,.55),0 0 0 1px #1c222b;container-type:inline-size;transition:transform .25s var(--ease)}
.jr-card:hover .jr-cv{transform:translateY(-4px) rotate(-.4deg)}
.jr-cv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.1) saturate(.85)}
.jr-cv.wip img{filter:contrast(1.1) saturate(.5) brightness(.55)}
.jr-void{position:absolute;inset:0;background:radial-gradient(120% 80% at 70% 20%,#1f2833 0,#0b0d11 60%),#0b0d11}
.jr-tone{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0,transparent 30%,transparent 50%,rgba(0,0,0,.85) 100%)}
.jr-cvm{position:absolute;left:calc(7*var(--u));right:calc(7*var(--u));top:calc(6*var(--u));color:#fff}
.jr-cvm b{display:block;font:800 calc(17*var(--u))/.9 var(--sans);letter-spacing:.06em}
.jr-cvm span{display:block;margin-top:calc(3*var(--u));padding-top:calc(2.4*var(--u));border-top:calc(1.2*var(--u)) solid var(--k-amb);font:600 calc(4.4*var(--u)) var(--mono);letter-spacing:.14em;text-transform:uppercase}
.jr-cvl{position:absolute;left:calc(7*var(--u));right:calc(7*var(--u));bottom:calc(7*var(--u));color:#fff;display:flex;flex-direction:column;gap:calc(2*var(--u))}
.jr-cvl b{font:800 calc(8.5*var(--u))/1.02 var(--sans);text-transform:uppercase}
.jr-cvl em{font:600 calc(4.2*var(--u)) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--k-amb);font-style:normal}
.jr-meta{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;color:var(--dim)}
.jr-bar{height:3px;background:var(--line);overflow:hidden}
.jr-bar i{display:block;height:100%;background:var(--amber)}
/* ── читалка ── */
.jr-read{display:flex;flex-direction:column;height:100%}
.jr-top{display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line);font-size:12px;flex-wrap:wrap}
.jr-sp{flex:1}
.jr-top .jr-pg{font:11px var(--mono);color:var(--dim);min-width:120px;text-align:center}
.jr-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(70% 60% at 50% 45%,rgba(240,166,60,.05),transparent 70%)}
.jr-book{position:relative;perspective:2800px;box-shadow:0 30px 80px rgba(0,0,0,.65),0 0 0 1px #1a2029}
.jr-pg2{position:absolute;top:0;height:100%;width:50%;container-type:inline-size;overflow:hidden}
.jr-pgL{left:0}.jr-pgR{left:50%}
.jr-book.one .jr-pgL{width:100%}.jr-book.one .jr-pgR,.jr-book.one .jr-spine{display:none}
.jr-spine{position:absolute;top:0;bottom:0;left:50%;width:7%;transform:translateX(-50%);pointer-events:none;z-index:4;
  background:linear-gradient(90deg,transparent,rgba(0,0,0,.6) 46%,rgba(255,255,255,.05) 50%,rgba(0,0,0,.6) 54%,transparent)}
.jr-strip{display:flex;gap:3px;padding:6px 12px;border-top:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.jr-d{all:unset;flex:0 0 auto;width:24px;height:22px;display:grid;place-items:center;font:10.5px var(--mono);color:var(--dim);opacity:.3}
.jr-d.miss{opacity:.5;text-decoration:line-through}
.jr-d.has,button.jr-d{cursor:pointer;opacity:1;color:var(--tx);background:var(--panel);border:1px solid var(--line)}
.jr-d.on{background:var(--amber);border-color:var(--amber);color:#111}
/* ── страница ── */
.jr-p{position:absolute;inset:0;box-sizing:border-box;padding:calc(4.2*var(--u)) calc(4.2*var(--u)) calc(3.2*var(--u));display:flex;flex-direction:column;gap:calc(2*var(--u));color:var(--k-tx);
  background:radial-gradient(120% 70% at 30% 0,#141a22 0,transparent 60%),linear-gradient(180deg,var(--k-bg2),var(--k-bg))}
.jr-pl{box-shadow:inset -calc(2.5*var(--u)) 0 calc(3*var(--u)) -calc(2*var(--u)) rgba(0,0,0,.7)}
.jr-pr{box-shadow:inset calc(2.5*var(--u)) 0 calc(3*var(--u)) -calc(2*var(--u)) rgba(0,0,0,.7)}
.jr-run{display:flex;justify-content:space-between;gap:calc(3*var(--u));font:600 calc(1.75*var(--u)) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--k-dim);border-bottom:calc(.25*var(--u)) solid var(--k-line);padding-bottom:calc(1.3*var(--u))}
.jr-run span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jr-date{display:flex;align-items:flex-end;gap:calc(2*var(--u));margin-top:calc(.6*var(--u))}
.jr-date b{font:700 calc(7.5*var(--u))/.8 var(--mono);color:var(--k-amb);letter-spacing:-.04em}
.jr-date span{font:600 calc(2*var(--u))/1.25 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--k-dim)}
.jr-h{margin:0;font:800 calc(5*var(--u))/1 var(--sans);text-transform:uppercase;letter-spacing:-.005em;color:#fff}
.jr-lede{margin:-calc(.6*var(--u)) 0 0;font:400 calc(2.35*var(--u))/1.4 var(--sans);color:#c9c5bc;border-left:calc(.6*var(--u)) solid var(--k-amb);padding-left:calc(2*var(--u))}
.jr-grid3,.jr-grid4{flex:1;min-height:0;display:grid;gap:calc(1.6*var(--u))}
.jr-grid3.l3{grid-template-columns:1fr 1fr;grid-template-rows:1.3fr 1fr;grid-template-areas:"a a" "b c"}
.jr-grid3.l2{grid-template-rows:1fr 1fr;grid-template-areas:"a" "b"}
.jr-grid3.l1{grid-template-areas:"a"}
.jr-grid4.r4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1.15fr;grid-template-areas:"d e" "d f" "g g"}
.jr-grid4.r3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;grid-template-areas:"d e" "d f"}
.jr-grid4.r2{grid-template-rows:1fr 1fr;grid-template-areas:"d" "e"}
.jr-grid4.r1{grid-template-areas:"d"}
.jr-pn.p1{grid-area:a}.jr-pn.p2{grid-area:b}.jr-pn.p3{grid-area:c}.jr-pn.p4{grid-area:d}.jr-pn.p5{grid-area:e}.jr-pn.p6{grid-area:f}.jr-pn.p7{grid-area:g}
.jr-end{flex:1;display:grid;place-items:center;font:600 calc(2*var(--u)) var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--k-dim)}
/* кадр */
.jr-pn{position:relative;margin:0;min-height:0;overflow:hidden;background:#050608;outline:calc(.35*var(--u)) solid var(--k-frame);outline-offset:-calc(.35*var(--u));box-shadow:0 calc(.8*var(--u)) calc(2*var(--u)) rgba(0,0,0,.5)}
.jr-pn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.06) saturate(.92) brightness(1.08);user-select:none}
.jr-dots{position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;opacity:.2;
  background:radial-gradient(circle,rgba(0,0,0,.55) 30%,transparent 33%) 0 0/calc(.9*var(--u)) calc(.9*var(--u)),radial-gradient(120% 90% at 50% 50%,transparent 55%,rgba(0,0,0,.45) 100%)}
.jr-noimg{position:absolute;inset:0;display:grid;place-items:center;padding:8%;text-align:center;
  background:radial-gradient(90% 80% at 30% 25%,#26303c 0,#0c0f14 70%),#0c0f14}
.jr-noimg span{font:600 calc(1.5*var(--u)) var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--k-dim);opacity:.7}
.jr-cap{position:absolute;left:calc(1.2*var(--u));top:calc(1.2*var(--u));max-width:62%;z-index:2;box-sizing:border-box;background:rgba(9,11,15,.93);color:#f2efe8;
  border-left:calc(.7*var(--u)) solid var(--k-amb);padding:calc(.9*var(--u)) calc(1.3*var(--u));font:500 calc(1.62*var(--u))/1.32 var(--sans);box-shadow:0 calc(.5*var(--u)) calc(1.4*var(--u)) rgba(0,0,0,.5)}
.jr-bub{position:absolute;z-index:2;max-width:46%;box-sizing:border-box;background:#fbfaf6;color:#0e0f12;border:calc(.3*var(--u)) solid #0e0f12;border-radius:calc(3.2*var(--u));
  padding:calc(.9*var(--u)) calc(1.6*var(--u)) calc(.85*var(--u));font:800 calc(1.55*var(--u))/1.18 var(--sans);text-transform:uppercase;letter-spacing:.01em;box-shadow:calc(.4*var(--u)) calc(.6*var(--u)) 0 rgba(0,0,0,.45)}
.jr-bub small{display:block;margin-top:calc(.5*var(--u));font:600 calc(1.35*var(--u)) var(--mono);letter-spacing:.12em;color:#9a6b1e;text-transform:uppercase}
.jr-bub.b1{left:calc(3*var(--u));bottom:calc(3*var(--u))}
.jr-bub.b2{right:calc(3*var(--u));bottom:calc(14*var(--u))}
.jr-bub::after{content:"";position:absolute;width:calc(2.2*var(--u));height:calc(2.2*var(--u));background:#fbfaf6;border-right:calc(.3*var(--u)) solid #0e0f12;border-bottom:calc(.3*var(--u)) solid #0e0f12;
  left:calc(3.5*var(--u));top:100%;transform:translateY(-55%) rotate(45deg) skew(12deg,12deg)}
.jr-bub.b2::after{left:auto;right:calc(3.5*var(--u))}
.jr-pn.p2 .jr-bub,.jr-pn.p3 .jr-bub,.jr-pn.p5 .jr-bub,.jr-pn.p6 .jr-bub{max-width:70%;left:auto;right:calc(2*var(--u));top:calc(2*var(--u));bottom:auto}
/* маленький кадр: одна реплика (подпись укорачивает journal.js) */
.jr-pn.p2 .jr-bub.b2,.jr-pn.p3 .jr-bub.b2,.jr-pn.p5 .jr-bub.b2,.jr-pn.p6 .jr-bub.b2{display:none}
/* маленький кадр: подпись — полосой внизу, реплика — сверху справа, хвост вниз */
.jr-pn.p2 .jr-cap,.jr-pn.p3 .jr-cap,.jr-pn.p5 .jr-cap,.jr-pn.p6 .jr-cap{max-width:none;left:0;right:0;top:auto;bottom:0;border-left:0;border-top:calc(.45*var(--u)) solid var(--k-amb);background:linear-gradient(180deg,rgba(9,11,15,.82),rgba(9,11,15,.96));box-shadow:none}
.jr-folio{display:flex;justify-content:space-between;gap:calc(3*var(--u));font:600 calc(1.6*var(--u)) var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--k-dim)}
.jr-folio span:first-child{color:var(--k-amb)}
.jr-folio.r span:first-child{color:var(--k-dim);letter-spacing:.06em;text-transform:none}
.jr-folio.r span:last-child{color:var(--k-amb)}
.jr-src{display:flex;flex-wrap:wrap;align-items:baseline;gap:calc(.6*var(--u)) calc(1.6*var(--u));font:calc(1.6*var(--u)) var(--sans)}
.jr-src small{font:600 calc(1.5*var(--u)) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--k-dim)}
.jr-src a{color:#b9b4aa;text-decoration:none;border-bottom:1px solid #3a3f47}
.jr-src a:hover{color:var(--k-amb);border-color:var(--k-amb)}
/* обложка */
.jr-cover{padding:0;background:#07080a}
.jr-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.12) saturate(.85)}
.jr-cover.wip>img{filter:contrast(1.15) saturate(.55) brightness(.5)}
.jr-cm{position:absolute;left:calc(6*var(--u));right:calc(6*var(--u));top:calc(5*var(--u));color:#fff}
.jr-cm b{display:block;font:800 15.5cqw/.88 var(--sans);letter-spacing:.04em;text-shadow:0 calc(1*var(--u)) calc(4*var(--u)) rgba(0,0,0,.5)}
.jr-cmn{display:flex;justify-content:space-between;gap:calc(3*var(--u));margin-top:calc(2.4*var(--u));padding-top:calc(2*var(--u));border-top:calc(1*var(--u)) solid var(--k-amb);font:600 calc(2.3*var(--u)) var(--mono);letter-spacing:.16em;text-transform:uppercase}
.jr-cl{position:absolute;left:calc(6*var(--u));right:calc(6*var(--u));bottom:calc(13*var(--u));color:#fff}
.jr-cl em{display:block;font:600 calc(2.3*var(--u)) var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--k-amb);font-style:normal;margin-bottom:calc(1.5*var(--u))}
.jr-cl h2{margin:0 0 calc(2.4*var(--u));font:800 calc(8*var(--u))/1 var(--sans);text-transform:uppercase}
.jr-cl p{margin:calc(1*var(--u)) 0;font:500 calc(2.5*var(--u))/1.35 var(--sans);padding-left:calc(2*var(--u));border-left:calc(.6*var(--u)) solid var(--k-amb);color:#e8e4dc}
.jr-open{position:absolute;right:calc(6*var(--u));bottom:calc(4.5*var(--u));border:0;background:var(--k-amb);color:#111;font:700 calc(2.4*var(--u)) var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:calc(1.4*var(--u)) calc(3*var(--u));cursor:pointer}
/* содержание */
.jr-toch{font:800 calc(7*var(--u))/1 var(--sans);text-transform:uppercase;color:#fff;margin-top:calc(2*var(--u))}
.jr-tocl{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}
.jr-tocl button{all:unset;cursor:pointer;display:grid;grid-template-columns:calc(7*var(--u)) 1fr auto;gap:calc(2*var(--u));align-items:baseline;padding:calc(1.6*var(--u)) 0;border-bottom:calc(.2*var(--u)) solid var(--k-line)}
.jr-tocl button:hover span{color:var(--k-amb)}
.jr-tocl b{font:700 calc(4.2*var(--u))/1 var(--mono);color:var(--k-amb)}
.jr-tocl span{font:700 calc(2.7*var(--u))/1.2 var(--sans);text-transform:uppercase;color:#f2efe8}
.jr-tocl small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:calc(.6*var(--u));font:400 calc(1.85*var(--u))/1.35 var(--sans);text-transform:none;color:var(--k-dim)}
.jr-tocl i{font:calc(1.8*var(--u)) var(--mono);color:var(--k-dim);font-style:normal}
.jr-tocl .jr-dim{font-size:calc(2.4*var(--u));color:var(--k-dim);padding-top:calc(2*var(--u))}
.jr-imp{font:400 calc(1.7*var(--u))/1.45 var(--sans);color:var(--k-dim);border-top:calc(.25*var(--u)) solid var(--k-line);padding-top:calc(1.6*var(--u))}
.jr-blankp{background:var(--k-bg)}
/* единица вёрстки страницы: доля ширины страницы; на одиночной странице (телефон, стол) — крупнее, чтобы текст читался */
.jr-pg2{--u:1.2cqw}
.jr-cv{--u:1cqw}
.jr-book.one .jr-pg2{--u:1.38cqw}
.jr-book.one .jr-bub{max-width:80%}.jr-book.one .jr-cap{max-width:92%}
.jr-c .jr-stage{background:none}
/* перелистывание: лист из вложенных полос (journal.js begin/setQ) — изгиб дугой, тень по углу, тень на нижней странице */
.jr-leaf{position:absolute;top:0;left:50%;width:50%;height:100%;z-index:6;transform-style:preserve-3d;pointer-events:none}
.jr-leaf.one{left:0;width:100%}
.jr-st3{position:absolute;top:0;height:100%;transform-origin:0 50%;transform-style:preserve-3d;will-change:transform}
.jr-sf,.jr-sb{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--k-bg)}
.jr-sb{transform:rotateY(180deg)}
.jr-leaf.one .jr-sb{background:transparent}
.jr-sf>i,.jr-sb>i{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}
.jr-slice{position:absolute;top:0;height:100%;container-type:inline-size;--u:1.2cqw}
.jr-leaf.one .jr-slice{--u:1.38cqw}
.jr-cast{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent 28%,rgba(0,0,0,.35) 44%,rgba(0,0,0,.65) 50%,rgba(0,0,0,.35) 56%,transparent 72%)}
.jr-book.one .jr-cast{background:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.25) 35%,transparent 70%)}
.jr-stage{touch-action:pan-y;user-select:none;-webkit-user-select:none}
/* страница целиком из генератора */
.jr-full{padding:0;background:#0b0d11}
.jr-full>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none}
.jr-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.jr-srcb{position:absolute;left:50%;bottom:calc(1.1*var(--u));transform:translateX(-50%);z-index:3;border:1px solid rgba(240,166,60,.6);background:rgba(9,11,15,.85);
  color:var(--k-amb);font:600 calc(1.25*var(--u)) var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:calc(.5*var(--u)) calc(1.4*var(--u));cursor:pointer}
.jr-srcpop{display:none;position:absolute;left:5%;right:5%;bottom:calc(5*var(--u));z-index:3;max-height:45%;overflow:auto;background:rgba(9,11,15,.97);
  border-left:calc(.6*var(--u)) solid var(--k-amb);padding:calc(1.4*var(--u)) calc(2*var(--u));box-shadow:0 1cqw 4cqw rgba(0,0,0,.6)}
.jr-full.srcon .jr-srcpop{display:block}
.jr-srcpop small{display:block;font:600 calc(1.3*var(--u)) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--k-dim);margin-bottom:calc(.8*var(--u))}
.jr-srcpop a{display:block;padding:calc(.6*var(--u)) 0;border-bottom:1px solid var(--k-line);font:calc(1.6*var(--u))/1.35 var(--sans);color:#d6d1c7;text-decoration:none}
.jr-srcpop a b{color:var(--k-amb);font-weight:600}
.jr-srcpop a:hover{color:#fff}
/* обложка целиком из генератора; предварительная (выпуск открыт) — с пометкой */
.jr-cv.full img{filter:none}
.jr-cv .jr-draft{position:absolute;right:4cqw;bottom:4cqw;font:600 4.2cqw var(--mono);letter-spacing:.12em;text-transform:uppercase;font-style:normal;
  color:#111;background:var(--k-amb);padding:1cqw 2.4cqw}
.jr-coverfull .jr-draft{position:absolute;left:calc(2*var(--u));bottom:calc(1.9*var(--u));z-index:3;white-space:nowrap;
  font:600 calc(1.2*var(--u)) var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#111;background:var(--k-amb);padding:calc(.4*var(--u)) calc(1.2*var(--u))}
.jr-coverfull .jr-open{bottom:calc(1.6*var(--u));right:calc(2*var(--u));font-size:calc(1.6*var(--u));padding:calc(.8*var(--u)) calc(1.8*var(--u))}
/* тон дня (page.mood): фон вокруг книги и фон страниц, собранных из кадров; у страниц целиком палитра — в самой картинке */
.jr-stage[data-mood="positive"]{background:radial-gradient(70% 60% at 50% 45%,rgba(64,196,170,.12),transparent 70%)}
.jr-stage[data-mood="negative"]{background:radial-gradient(70% 60% at 50% 45%,rgba(196,64,64,.07),transparent 70%)}
.jr-stage[data-mood="positive"] .jr-p:not(.jr-full):not(.jr-cover){background:radial-gradient(120% 70% at 30% 0,#1d3b37 0,transparent 60%),linear-gradient(180deg,#12302c,#0e2420)}
.jr-stage[data-mood="negative"] .jr-p:not(.jr-full):not(.jr-cover){background:radial-gradient(120% 70% at 30% 0,#1a1416 0,transparent 60%),linear-gradient(180deg,#0e0d10,#09090b)}
