/* Тема сайта «Киберпанк» по мотивам обложки «Восток Везде» (макет: docs/design/style.css).
   Подключается после pico и app.css; тёмная (data-theme="dark" на <html>, см. journals/site_themes.py). */

@font-face { font-family: "Inter"; font-weight: 400; src: url("../../fonts/Inter-Regular.ttf"); font-display: swap; }
@font-face { font-family: "Inter"; font-weight: 500; src: url("../../fonts/Inter-Medium.ttf"); font-display: swap; }
@font-face { font-family: "Inter"; font-weight: 600; src: url("../../fonts/Inter-SemiBold.ttf"); font-display: swap; }
@font-face { font-family: "Inter"; font-weight: 700; src: url("../../fonts/Inter-Bold.ttf"); font-display: swap; }
@font-face { font-family: "Inter"; font-weight: 800; src: url("../../fonts/Inter-ExtraBold.ttf"); font-display: swap; }

:root[data-theme="dark"] {
  --cyan: #2ee6e0;
  --magenta: #e24bd0;
  --violet: #8a5cf6;
  --amber: #f5b84a;
  --green: #4be3a0;
  --red: #ff5d7a;
  --glow-c: 0 0 24px rgba(46, 230, 224, .35);
  --glow-m: 0 0 24px rgba(226, 75, 208, .35);
  --line: rgba(190, 215, 235, .22);
  --line-strong: rgba(190, 215, 235, .5);

  --pico-font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --pico-font-size: 16px;
  --pico-border-radius: 4px;
  --pico-background-color: #070b14;
  --pico-color: #f4f7fb;
  --pico-muted-color: #8f9db3;
  --pico-muted-border-color: var(--line);
  --pico-h1-color: #fff; --pico-h2-color: #fff; --pico-h3-color: #fff; --pico-h4-color: #fff;
  --pico-primary: var(--cyan);
  --pico-primary-background: var(--cyan);
  --pico-primary-border: var(--cyan);
  --pico-primary-underline: rgba(46, 230, 224, .5);
  --pico-primary-hover: #fff;
  --pico-primary-hover-background: #6ff3ee;
  --pico-primary-hover-border: #6ff3ee;
  --pico-primary-focus: rgba(46, 230, 224, .25);
  --pico-primary-inverse: #04070d;
  --pico-secondary: #8f9db3;
  --pico-secondary-background: rgba(190, 215, 235, .12);
  --pico-secondary-hover-background: rgba(190, 215, 235, .22);
  --pico-secondary-inverse: #f4f7fb;
  --pico-contrast: #fff;
  --pico-contrast-inverse: #04070d;
  --pico-card-background-color: rgba(16, 24, 42, .72);
  --pico-card-sectioning-background-color: rgba(16, 24, 42, .5);
  --pico-card-border-color: var(--line);
  --pico-card-box-shadow: none;
  --pico-form-element-background-color: rgba(7, 11, 20, .6);
  --pico-form-element-border-color: var(--line);
  --pico-form-element-color: #f4f7fb;
  --pico-form-element-active-background-color: rgba(7, 11, 20, .8);
  --pico-form-element-active-border-color: var(--cyan);
  --pico-form-element-focus-color: var(--cyan);
  --pico-form-element-placeholder-color: #5d6b82;
  --pico-form-element-label-color: #8f9db3;
  --pico-dropdown-background-color: #0f1729;
  --pico-dropdown-border-color: var(--line);
  --pico-dropdown-color: #f4f7fb;
  --pico-dropdown-hover-background-color: rgba(46, 230, 224, .1);
  --pico-dropdown-box-shadow: 0 20px 50px rgba(0, 0, 0, .6);
  --pico-table-border-color: var(--line);
  --pico-table-row-stripped-background-color: transparent;
  --pico-del-color: var(--red);
  --pico-ins-color: var(--green);
  --pico-code-background-color: rgba(7, 11, 20, .7);
  --pico-code-color: #c9d6ea;

  --woks-warn-bg: rgba(245, 184, 74, .14); --woks-warn-fg: #f5d48a;
  --woks-info-bg: rgba(46, 230, 224, .08); --woks-info-border: rgba(46, 230, 224, .4);
  --woks-error-bg: rgba(255, 93, 122, .12); --woks-error-border: rgba(255, 93, 122, .45); --woks-error-fg: #ffb3c0;
  --woks-success: var(--green);
  --woks-tone-info: var(--cyan);
  --woks-tone-good: var(--green);
  --woks-tone-bad: var(--red);
  --woks-tone-muted: #8f9db3;
  --woks-tone-warn: var(--amber);
}

html, body { overflow-x: clip; }
body {
  background:
    radial-gradient(900px 600px at 85% -10%, rgba(46, 230, 224, .16), transparent 60%),
    radial-gradient(800px 600px at -10% 20%, rgba(226, 75, 208, .14), transparent 60%),
    radial-gradient(700px 500px at 60% 110%, rgba(138, 92, 246, .12), transparent 60%),
    #070b14;
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
}
:root[data-theme="dark"] .container { max-width: 1180px; }

/* Типографика: плотный ExtraBold, как заголовок обложки */
h1, h2, h3, h4 { font-weight: 800; letter-spacing: -.035em; line-height: 1.1; }
h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); margin-top: 2rem; }
h3 { font-size: 1.3rem; font-weight: 700; letter-spacing: -.02em; }
h4 { font-size: 1.1rem; font-weight: 700; letter-spacing: -.015em; line-height: 1.3; }
th, label { font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--pico-muted-color); }
th { border-bottom: 1px solid var(--line-strong); }
input[type="checkbox"] ~ label, label:has(> input[type="checkbox"]), label:has(> input[type="radio"]) { text-transform: none; letter-spacing: 0; font-size: .95rem; color: var(--pico-color); font-weight: 400; }
a { text-decoration: none; }
a:hover { text-shadow: var(--glow-c); }
hr { border-color: var(--line-strong); }

/* Шапка */
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(7, 11, 20, .72); backdrop-filter: blur(14px); margin-bottom: 1rem; }
.site-nav { min-height: 44px; }
.site-nav, .site-nav ul { margin-block: 0; }
.site-nav li { padding-block: 0; }
.site-nav .brand { padding-block: .35rem; margin: 0; }
.site-nav details.dropdown summary { padding-block: .35rem; }
.site-nav .brand { font-size: 1.25rem; font-weight: 800; letter-spacing: -.03em; color: #fff; }
.site-nav [aria-current="page"] { text-decoration-color: var(--magenta); }

/* Кнопки */
button, [type="submit"], [role="button"], a[role="button"] {
  font-weight: 600; letter-spacing: .01em; border-radius: var(--pico-border-radius);
  background: linear-gradient(90deg, var(--cyan), #6ff3ee); border-color: transparent; color: #04070d; box-shadow: var(--glow-c);
}
button:hover, [type="submit"]:hover, [role="button"]:hover { filter: brightness(1.1); color: #04070d; text-shadow: none; }
button.secondary, button.outline, [role="button"].outline, [role="button"].secondary, .dropdown-item-btn, summary {
  background: transparent; color: var(--pico-color); border: 1px solid var(--line-strong); box-shadow: none;
}
button.outline:hover, [role="button"].outline:hover { border-color: var(--cyan); color: var(--cyan); filter: none; }
.site-nav details.dropdown summary { border: 0; }
.dropdown-item-btn { border: 0; }
button.contrast { background: linear-gradient(90deg, var(--magenta), #f37be4); color: #1a0316; box-shadow: var(--glow-m); }
input:focus, select:focus, textarea:focus { box-shadow: 0 0 0 3px rgba(46, 230, 224, .18); }

/* Панели и карточки */
article { backdrop-filter: blur(8px); border: 1px solid var(--line); box-shadow: none; }
tr:hover td { background: rgba(46, 230, 224, .04); }
.badge { background: rgba(190, 215, 235, .12); color: var(--pico-muted-color); }
.status { letter-spacing: .04em; }

/* Доска редакции */
.kanban-head { padding-bottom: .6rem; border-bottom: 1px solid var(--line-strong); }
.kanban-head h2 { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
.kanban-col:nth-child(1) .kanban-head { border-color: var(--cyan); }
.kanban-col:nth-child(2) .kanban-head { border-color: var(--amber); }
.kanban-col:nth-child(3) .kanban-head { border-color: var(--violet); }
.kanban-col:nth-child(4) .kanban-head { border-color: var(--magenta); }
.kanban-col:nth-child(5) .kanban-head { border-color: var(--green); }
.stage-paper-card { transition: border-color .15s, box-shadow .15s; }
.stage-paper-card:hover { border-color: var(--magenta); box-shadow: var(--glow-m); }
.card-title a { color: #fff; }

/* Карточки выпусков */
.issue-grid { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
@media (max-width: 960px) { .issue-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .issue-grid { grid-template-columns: 1fr; } }
.issue-card { background: none; border: 0; box-shadow: none; overflow: visible; }
.issue-card:hover { transform: none; box-shadow: none; }
.issue-cover { border-radius: var(--pico-border-radius); overflow: hidden; background: #0c1322; box-shadow: 0 0 0 1px var(--line); transition: transform .25s, box-shadow .25s; }
.issue-card a:hover .issue-cover { transform: translateY(-6px); box-shadow: 0 0 0 1px var(--cyan), 0 20px 50px rgba(0, 0, 0, .55), 0 0 40px rgba(46, 230, 224, .3); }
.issue-cover-empty { height: 100%; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: linear-gradient(160deg, #101a33, #1c0d2b); }
.issue-cover-empty strong { color: #fff; font-size: 2rem; letter-spacing: -.03em; }
.issue-info { padding: .8rem 0 0; }

/* Герой главной */
.hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 3rem; align-items: center; padding: 2rem 0 3rem; }
.hero h1 { font-size: clamp(3rem, 8vw, 6rem); line-height: 1; margin: .75rem 0 0; }
.hero .rule { height: 1px; border: 0; background: var(--line-strong); margin: 1.5rem 0 1rem; }
.hero .meta-row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem 2rem; font-size: .9rem; }
.hero .eyebrow { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--pico-muted-color); }
.hero-cover img { width: 100%; max-width: 380px; margin-left: auto; display: block; border-radius: var(--pico-border-radius);
  box-shadow: 0 0 0 1px var(--line), 0 30px 80px rgba(0, 0, 0, .6), 0 0 80px rgba(226, 75, 208, .25), 0 0 120px rgba(46, 230, 224, .15); }
.hero h1 { overflow-wrap: anywhere; }
@media (max-width: 860px) { .hero { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding: 1rem 0 2rem; } .hero-cover img { margin: 0; } }

.buy-btn { display: inline-block; padding: .2rem .7rem; border-radius: 999px; background: linear-gradient(90deg, var(--magenta), #ff7a59); color: #1a0316; font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; box-shadow: var(--glow-m); white-space: nowrap; }
.buy-btn:hover { filter: brightness(1.12); color: #1a0316; }
.issue-info { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.issue-info .card-title { margin: 0; color: #fff; }

/* Список статей выпуска */
.section-title { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--magenta); margin: 2rem 0 .5rem; }
article > h4 a, .person-paper h4 a { color: #fff; }

/* Шкала хода работы, ленты, вкладки */
.feed .note { border-left-color: var(--magenta); }
.tabs a[aria-current="page"] { background: transparent; border-color: var(--line-strong); }
.image-thumb { background: repeating-conic-gradient(#1a2338 0 25%, #0f1729 0 50%) 0 0 / 16px 16px; }
ins { background: rgba(75, 227, 160, .2); color: inherit; }
del { background: rgba(255, 93, 122, .2); color: inherit; }
.paragraphs .para.edited { background: var(--woks-warn-bg); }

html { background: #070b14; }
body { min-height: 100vh; }
.site-nav details.dropdown summary { color: var(--pico-color); }
.site-nav details.dropdown summary.burger { padding: .4rem .5rem; line-height: 0; }
.site-nav details.dropdown summary.burger::after { display: none; }
.site-nav details.dropdown summary.burger:hover { color: var(--cyan); border-color: var(--cyan); }

/* Обложка на странице выпуска: треть ширины, клик — увеличить */
.issue-head.has-cover { display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; align-items: start; }
.issue-head-cover img { width: 100%; display: block; cursor: zoom-in; border-radius: var(--pico-border-radius); box-shadow: 0 0 0 1px var(--line), 0 20px 50px rgba(0, 0, 0, .5); transition: box-shadow .25s; }
.issue-head-cover > img:hover { box-shadow: 0 0 0 1px var(--cyan), 0 20px 50px rgba(0, 0, 0, .55), 0 0 40px rgba(46, 230, 224, .3); }
.cover-zoom { position: fixed; inset: 0; z-index: 1000; background: rgba(5, 8, 16, .92); display: flex; align-items: center; justify-content: center; padding: 1rem; cursor: zoom-out; }
.cover-zoom img { width: auto; max-width: 100%; max-height: 100%; cursor: zoom-out; box-shadow: 0 0 80px rgba(46, 230, 224, .25); }
@media (max-width: 700px) { .issue-head.has-cover { grid-template-columns: 1fr; } .issue-head-cover { max-width: 60%; } }

/* Переливающаяся ссылка «Редколлегия» (поверх растянутой ссылки героя) */
.shimmer-link {
  position: relative; z-index: 2; display: inline-block; font-size: 1.15rem; font-weight: 700; letter-spacing: .04em;
  text-decoration: none; padding-bottom: .15rem;
  background: linear-gradient(90deg, var(--cyan), var(--magenta), #ff7a59, var(--cyan)) 0 0 / 300% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
  animation: shimmer 6s linear infinite;
  border-bottom: 2px solid transparent; border-image: linear-gradient(90deg, var(--cyan), var(--magenta)) 1;
}
.shimmer-link:hover { filter: drop-shadow(0 0 8px rgba(226, 75, 208, .6)); text-shadow: none; }
@keyframes shimmer { to { background-position: 300% 0; } }
@media (prefers-reduced-motion: reduce) { .shimmer-link { animation: none; } }
