@font-face{font-family:'JetBrains Mono';src:url('assets/JetBrainsMono-Regular.woff2') format('woff2');font-display:swap}

/* ═══════════════════════════════════════════════════════════
   {space} · осенний сезон · открытый эфир 23.09.2026
   Режим paper (сцена 1600×900) в токенах сайта сезона:
   белая бумага, чернила #111, служебный #66655f, линия #d9d9d9,
   один акцент #d92027. Шрифт один – JetBrains Mono.
   ═══════════════════════════════════════════════════════════ */

:root{
  --bg:#ffffff; --bg-dim:#f4f4f2; --bg-dark:#111111;
  --ink:#111111; --ink-soft:#3a3a36; --ink-mute:#66655f;
  --line:#d9d9d9; --line-soft:#ececea;
  --accent:#d92027; --accent-soft:#fbe9ea;
  --paper:#ffffff;
}
html[data-theme="dark"]{
  --bg:#111111; --bg-dim:#1c1c1b; --bg-dark:#ffffff;
  --ink:#f2f1ec; --ink-soft:#c9c8c1; --ink-mute:#8f8e87;
  --line:#3a3a38; --line-soft:#2a2a28;
  --accent:#ff3b42; --accent-soft:#3a1214;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);height:100%;overflow:hidden;
  font-family:'JetBrains Mono',monospace;color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}

.deck{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center}
.stage{width:1600px;height:900px;transform-origin:center center;position:relative}
.slide{position:absolute;inset:0;background:var(--bg);padding:60px 80px;opacity:0;
  pointer-events:none;transition:opacity .35s ease;overflow:hidden}
.slide.active{opacity:1;pointer-events:auto}

/* тёмный слайд внутри светлой темы */
.slide.dark{background:var(--bg-dark)}
html:not([data-theme="dark"]) .slide.dark{color:#f2f1ec}
html:not([data-theme="dark"]) .slide.dark .frame{border-color:#f2f1ec}
html:not([data-theme="dark"]) .slide.dark .corner{background:#111;border-color:#f2f1ec}
html:not([data-theme="dark"]) .slide.dark .meta,
html:not([data-theme="dark"]) .slide.dark h1,
html:not([data-theme="dark"]) .slide.dark h2,
html:not([data-theme="dark"]) .slide.dark h3,
html:not([data-theme="dark"]) .slide.dark p{color:#f2f1ec}
html:not([data-theme="dark"]) .slide.dark .footmeta,
html:not([data-theme="dark"]) .slide.dark .fig,
html:not([data-theme="dark"]) .slide.dark .meta .right,
html:not([data-theme="dark"]) .slide.dark .mute{color:#9a9992}
html:not([data-theme="dark"]) .slide.dark .footmeta .num{color:#f2f1ec}
html:not([data-theme="dark"]) .slide.dark .grid-bg{background-image:radial-gradient(circle,rgba(242,241,236,.09) 1px,transparent 1px)}
html:not([data-theme="dark"]) .slide.dark .logo img{filter:invert(1)}
html:not([data-theme="dark"]) .slide.dark .srail .sec{color:#6e6d67;border-top-color:#333}
html:not([data-theme="dark"]) .slide.dark .srail .sec.done{color:#9a9992;border-top-color:#9a9992}
html:not([data-theme="dark"]) .slide.dark .srail .sec.cur{color:#ff3b42;border-top-color:#ff3b42}
html:not([data-theme="dark"]) .slide.dark .accent-line{background:#ff3b42}
html:not([data-theme="dark"]) .slide.dark em{color:#ff3b42}
html:not([data-theme="dark"]) .slide.dark .lab-path{stroke:#f2f1ec}
html:not([data-theme="dark"]) .slide.dark .fig strong{color:#f2f1ec}

/* ── рамка листа ── */
.frame{position:absolute;inset:20px;border:1px solid var(--ink);pointer-events:none;z-index:1}
.corner{position:absolute;width:12px;height:12px;border:1px solid var(--ink);background:var(--bg);z-index:2}
.corner.tl{top:14px;left:14px} .corner.tr{top:14px;right:14px}
.corner.bl{bottom:14px;left:14px} .corner.br{bottom:14px;right:14px}
.grid-bg{position:absolute;inset:30px;pointer-events:none;z-index:0;opacity:.7;
  background-image:radial-gradient(circle,rgba(17,17,17,.07) 1px,transparent 1px);background-size:14px 14px}
html[data-theme="dark"] .grid-bg{background-image:radial-gradient(circle,rgba(242,241,236,.09) 1px,transparent 1px)}

.meta{position:absolute;top:38px;left:80px;right:80px;display:flex;justify-content:space-between;
  align-items:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;z-index:3}
.meta .left::before{content:'◇  '}
.meta .right{display:flex;align-items:center;gap:14px;color:var(--ink-mute)}
.meta .logo{width:30px;height:30px;flex-shrink:0}
.meta .logo img{width:100%;height:100%;object-fit:contain}
html[data-theme="dark"] .meta .logo img{filter:invert(1)}

.footmeta{position:absolute;bottom:38px;left:80px;right:80px;gap:40px;display:flex;justify-content:space-between;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);z-index:3}
.footmeta .num{color:var(--ink);font-weight:500}

.srail{position:absolute;top:96px;left:80px;right:80px;display:flex;gap:2px;z-index:3}
.srail .sec{flex:1;border-top:2px solid var(--line);padding-top:8px;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srail .sec.done{border-top-color:var(--ink-soft);color:var(--ink-soft)}
.srail .sec.cur{border-top-color:var(--accent);color:var(--accent);font-weight:500}

.body{position:relative;margin-top:78px;padding:12px 0 88px;height:calc(900px - 78px - 60px - 88px);z-index:2}
.slide.active .body>*{animation:fadeUp .5s ease both}
.slide.active .body>*:nth-child(1){animation-delay:.05s}
.slide.active .body>*:nth-child(2){animation-delay:.12s}
.slide.active .body>*:nth-child(3){animation-delay:.20s}
.slide.active .body>*:nth-child(4){animation-delay:.28s}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ── типографика ── */
h1{font-size:104px;font-weight:400;line-height:.94;letter-spacing:-.05em}
h2{font-size:72px;font-weight:400;line-height:.98;letter-spacing:-.045em}
h3{font-size:44px;font-weight:400;line-height:1.06;letter-spacing:-.03em}
h4{font-size:24px;font-weight:400;letter-spacing:-.02em}
p{font-size:22px;line-height:1.45}
em{font-style:normal;color:var(--accent)}
.mute{color:var(--ink-mute)}
.fig{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:14px}
.fig strong{color:var(--ink);font-weight:500}
.accent-line{width:80px;height:2px;background:var(--accent);margin:22px 0}
.pill{display:inline-block;background:var(--bg-dim);color:var(--ink);padding:4px 12px;border:1px solid var(--ink);
  margin-right:10px;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.pill.red{background:var(--accent);border-color:var(--accent);color:#fff}
.dotq{color:var(--accent)}

/* ── обложка ── */
.cover-grid{display:grid;grid-template-columns:1fr 600px;gap:56px;align-items:center;height:100%}
.cover-info .topic{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:24px 0 26px;margin-top:30px}
.topic-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute)}
.topic-title{font-size:36px;line-height:1.16;margin-top:10px}
.meta-line{margin-top:26px;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.cover-art{border:1px solid var(--ink);background:var(--bg);aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cover-art svg{width:100%;height:100%}

/* ── хук ── */
.hook{display:flex;flex-direction:column;justify-content:center;height:100%;padding:20px 40px}
.hook-text{font-size:64px;line-height:1.06;letter-spacing:-.04em;max-width:1340px}
.hook-attr{margin-top:42px;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute)}

/* ── раскладки ── */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start;height:100%}
.split.wide-right{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.split.wide-left{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.stack>*+*{margin-top:18px}
.lead{font-size:26px;line-height:1.4;max-width:1100px}
.reading p{font-size:20px;line-height:1.55;margin-bottom:14px}
.reading strong{font-weight:400;color:var(--ink);border-bottom:1px solid var(--ink)}

.cards{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:18px}
.cards.c2{grid-template-columns:repeat(2,1fr)}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.cards.c3 .card{min-height:230px;padding:24px 26px}
.cards.c3 .card b{font-size:24px}
.cards.c3 .card p{font-size:17px}
.cards.c4{grid-template-columns:repeat(4,1fr)}
.cards.c5{grid-template-columns:repeat(5,1fr)}
.card{background:var(--bg);padding:20px 22px;display:flex;flex-direction:column;gap:8px;min-height:150px}
.card small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.card b{font-weight:400;font-size:20px;line-height:1.2;letter-spacing:-.02em}
.card p{font-size:15px;line-height:1.5;color:var(--ink-soft)}
.card .src{margin-top:auto;font-size:11px;color:var(--ink-mute)}
.card.hot{background:var(--accent-soft)}
.card.hot small{color:var(--accent)}

.rows{margin-top:16px}
.row{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:14px 0;border-top:1px solid var(--line);align-items:baseline}
.row:last-child{border-bottom:1px solid var(--line)}
.row .k{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.row .v{font-size:19px;line-height:1.45}

/* ── цикл сезона ── */
.cycle svg{width:100%;height:auto;display:block}
.figbox{border:1px solid var(--line);padding:22px 26px;background:var(--bg)}
.figbox svg{width:100%;height:auto;display:block}

/* ── карточка группы ── */
.gnum{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}
.gnum b{color:var(--accent);font-weight:500}
.gtitle{font-size:52px;line-height:1;letter-spacing:-.045em;margin-top:8px}
.gtitle span{color:var(--accent)}
.gq{font-size:30px;line-height:1.35;margin-top:22px;padding:20px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.gq::before{content:'вопрос группы. ';color:var(--ink-mute);font-size:12px;letter-spacing:.16em;text-transform:uppercase;display:block;margin-bottom:8px}
.gfor{font-size:20px;color:var(--ink-soft);margin-top:14px;line-height:1.5}
.gmeta{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:22px}
.gmeta div{background:var(--bg);padding:16px 18px;font-size:17px;line-height:1.5}
.gmeta small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:4px}
.ghyp{margin-top:20px;font-size:16px;line-height:1.5;color:var(--ink-mute)}
.ghyp b{font-weight:400;color:var(--accent)}
.authors{display:flex;flex-direction:column;gap:16px}
.author{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:center;border:1px solid var(--ink);padding:0}
.author img{width:190px;height:190px;object-fit:cover;object-position:center top;display:block;filter:grayscale(1) contrast(1.05)}
.author div{padding:12px 16px 12px 0}
.author b{display:block;font-weight:400;font-size:24px;letter-spacing:-.02em}
.author span{display:block;font-size:14px;color:var(--ink-mute);margin-top:6px;line-height:1.45}
.author .h{font-size:12px;color:var(--accent);margin-top:6px}

/* ── матрица разнообразия ── */
.matrix{display:grid;grid-template-columns:230px 1fr;gap:6px 18px;margin-top:10px;font-size:12px}
.matrix .pn{color:var(--ink-mute);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;padding-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.matrix .opts{display:flex;gap:5px;flex-wrap:wrap}
.matrix .o{border:1px solid var(--line);padding:5px 8px;font-size:11px;color:var(--ink-soft);line-height:1.2;background:var(--bg)}
.matrix .o.on{border-color:var(--accent);background:var(--accent);color:#fff}
.matrix .o.gap{border-style:dashed;color:var(--ink-mute);background:repeating-linear-gradient(45deg,transparent 0 4px,var(--line-soft) 4px 5px)}
.legend{display:flex;gap:22px;font-size:11px;color:var(--ink-mute);margin-top:14px;letter-spacing:.06em}
.legend i{display:inline-block;width:14px;height:10px;border:1px solid var(--line);vertical-align:middle;margin-right:6px}
.legend i.on{background:var(--accent);border-color:var(--accent)}
.legend i.gap{border-style:dashed;background:repeating-linear-gradient(45deg,transparent 0 3px,var(--line) 3px 4px)}

/* ── воронка/лестница ── */
.ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:18px;border:1px solid var(--ink)}
.ladder>div{padding:18px 16px;border-right:1px solid var(--line);min-height:190px;display:flex;flex-direction:column;gap:8px}
.ladder>div:last-child{border-right:0}
.ladder small{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.ladder .n{font-size:44px;line-height:1;letter-spacing:-.04em}
.ladder .n.red{color:var(--accent)}
.ladder p{font-size:14px;line-height:1.45;color:var(--ink-soft)}

/* ── карта форматов ── */
.map{width:100%;height:auto;display:block}
.map text{font-family:'JetBrains Mono',monospace;font-size:11.5px;fill:var(--ink)}
.map text.axis{fill:var(--ink-mute);font-size:10px;letter-spacing:.1em}
.map .dot{fill:var(--bg);stroke:var(--ink);stroke-width:1.3}
.map .here{fill:var(--accent);stroke:var(--accent)}
.map .ax{stroke:var(--ink)}
.map .mid{stroke:var(--line);stroke-dasharray:3 5}

/* ── лабиринт ── */
.lab-wrap{display:flex;align-items:center;justify-content:center;height:100%}
.lab-wrap svg{height:100%;max-height:640px;width:auto;overflow:visible}
.lab-path{fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1}
.slide.active .lab-path{animation:draw 6s cubic-bezier(.4,0,.2,1) .3s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.lab-core{fill:var(--accent)}
.lab-wrap.still .lab-path{animation:none;stroke-dashoffset:0}

/* ── знак салона ── */
.sign{display:flex;align-items:center;justify-content:center}
.sign svg{width:100%;max-width:520px;height:auto}
.sign .ring{fill:none;stroke:currentColor;stroke-width:1.6}
.sign .seat{fill:currentColor}
.sign .gapseat{fill:none;stroke:currentColor;stroke-width:1.2;stroke-dasharray:3 3}
.sign .core{fill:var(--accent)}

/* ── список экспериментов ── */
.exp{display:grid;grid-template-columns:repeat(4,1fr)}
.exp.c3{grid-template-columns:repeat(3,1fr)}
.exp.c3>div{min-height:230px;padding:22px 22px}
.exp.c3 b{font-size:22px}
.exp.c3 p{font-size:16px}
.exp{;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:16px}
.exp>div{background:var(--bg);padding:16px 16px;min-height:170px;display:flex;flex-direction:column;gap:6px}
.exp small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.exp b{font-weight:400;font-size:17px;letter-spacing:-.02em;line-height:1.2}
.exp p{font-size:13px;line-height:1.45;color:var(--ink-soft)}
.exp .src{margin-top:auto;font-size:10.5px;color:var(--ink-mute)}

/* ── иллюстрация ── */
.ill{display:block;max-width:100%;max-height:100%;object-fit:contain;margin:auto}
html[data-theme="dark"] .ill{filter:invert(1) hue-rotate(180deg)}

/* ── обвязка ── */
.progress{position:fixed;left:0;top:0;height:2px;background:var(--accent);width:0;z-index:9;transition:width .3s}
.nav-controls{position:fixed;right:18px;bottom:16px;display:flex;gap:6px;z-index:9;opacity:0;transition:opacity .25s;pointer-events:none}
.themetag{position:fixed;left:18px;bottom:16px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);z-index:9;opacity:0;transition:opacity .25s;pointer-events:none}
body.ui .nav-controls,body.ui .themetag{opacity:1;pointer-events:auto}
.pn-btn{width:38px;height:38px;border:1px solid var(--ink);background:var(--bg);color:var(--ink);font:inherit;font-size:20px;cursor:pointer}
.pn-btn:hover{border-color:var(--accent);color:var(--accent)}
.notes{position:fixed;left:50%;bottom:70px;transform:translateX(-50%);max-width:820px;background:var(--ink);color:var(--bg);
  padding:14px 18px;font-size:14px;line-height:1.5;z-index:9;display:none}
.notes.on{display:block}
.notes .who{font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin-bottom:6px}

@media print{
  html,body{overflow:visible;height:auto}
  .deck{position:static;display:block}
  .stage{transform:none!important;width:1600px;height:auto}
  .slide{position:relative;opacity:1;height:900px;page-break-after:always}
  .progress,.nav-controls,.themetag,.notes{display:none}
}
