@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('ibm-plex-sans-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('ibm-plex-sans-cyrillic-400-normal.woff2') format('woff2');
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('ibm-plex-sans-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('ibm-plex-sans-cyrillic-500-normal.woff2') format('woff2');
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('ibm-plex-mono-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('ibm-plex-mono-cyrillic-400-normal.woff2') format('woff2');
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('ibm-plex-mono-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('ibm-plex-mono-cyrillic-500-normal.woff2') format('woff2');
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('jetbrains-mono-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('jetbrains-mono-cyrillic-400-normal.woff2') format('woff2');
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* Two themes: light (default) and night */
:root, [data-theme="light"] {
  --canvas: #f6f6f7; --ash: #f1f1f3; --card: #ffffff; --ink: #18181b;
  --hairline: #e4e4e7; --muted: #71717a; --moss: #2563eb; --fern: #2563eb;
  --emerald: #16a34a; --charcoal: #18181b; --sage: #8b5cf6; --indigo: #4f46e5;
  --dot: #dcdce0; --logo-filter: none; --field: #f1f1f3; --chip-ink: #ffffff;
  --scrim: rgba(24, 24, 27, 0.4); --error: #dc2626; --shade: rgba(24, 24, 27, 0.05);
  --stage: #ececef;
  --t-image: #eab308; --t-video: #7c3aed; --t-audio: #f59e0b; --t-text: #2563eb; --t-any: #18181b;
  --marquee: rgba(37, 99, 235, 0.08); --marquee-line: #2563eb; --on-accent: #ffffff;

  /* Semantic aliases */
  --surface-canvas: var(--canvas);
  --surface-panel: var(--ash);
  --surface-card: var(--card);
  --surface-field: var(--field);
  --surface-stage: var(--stage);
  --surface-node-dark: var(--charcoal);
  --surface-hover: var(--shade);
  --text-primary: var(--ink);
  --text-muted: var(--muted);
  --text-on-ink: var(--chip-ink);
  --text-on-accent: var(--on-accent);
  --text-link: var(--fern);
  --border-hairline: var(--hairline);
  --accent: var(--moss);
  --accent-strong: var(--emerald);
  --state-idle: var(--muted);
  --state-running: var(--emerald);
  --state-done: var(--fern);
  --state-error: var(--error);
}
[data-theme="night"] {
  --canvas: #131312; --ash: #181817; --card: #1e1e1c; --ink: #e4e2dc;
  --hairline: #2f2e2b; --muted: #8f8c91; --moss: #f4d941; --fern: #00c9cf;
  --emerald: #49f7a5; --charcoal: #1a2742; --sage: #c8c2e8; --indigo: #c8c2e8;
  --dot: #2a2927; --logo-filter: invert(1); --field: #181817; --chip-ink: #131312;
  --scrim: rgba(0, 0, 0, 0.7); --error: #ff5c45; --shade: rgba(255, 255, 255, 0.06);
  --stage: #0e0e0d;
  --t-image: #00c9cf; --t-video: #f8957b; --t-audio: #c8c2e8; --t-text: #f4d941; --t-any: #e4e2dc;
  --marquee: rgba(73, 247, 165, 0.12); --marquee-line: #49f7a5; --on-accent: #191917;
}

:root {
  --font-sans: 'IBM Plex Sans', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --font-label: 'JetBrains Mono', ui-monospace, monospace;

  --text-display: 32px;   --lh-display: 1.17;
  --text-title: 15px;
  --text-body: 14px;      --lh-body: 1.5;
  --text-ui: 13px;
  --text-mono: 12px;
  --text-mono-sm: 11px;
  --text-mono-xs: 10px;
  --weight-regular: 400;
  --weight-medium: 500;
  --tracking-mono: -0.01em;
  --tracking-label: 0.3em;
  --tracking-node-title: 0.24em;
}

*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:18px/1.6 var(--font-sans)}a{color:var(--fern);text-decoration:none}a:hover{text-decoration:underline}header,main,footer{max-width:1160px;margin:auto;padding:0 32px}.top{display:flex;justify-content:space-between;align-items:center;padding:28px 0;border-bottom:1px solid var(--hairline)}.brand,.label,.period,.meta,nav,footer,button,summary{font-family:var(--font-mono);font-size:12px}.brand{letter-spacing:.16em}.top nav{display:flex;gap:8px}.top nav a{background:white;border:1px solid var(--hairline);padding:8px 14px;border-radius:6px}.hero{padding:64px 0 40px;max-width:900px}.period,.label,.meta{color:var(--muted)}h1{font-size:52px;line-height:1.12;letter-spacing:-.03em;font-weight:500;margin:18px 0 24px}h2{font-size:30px;font-weight:500;margin:8px 0 24px}h3{font-size:28px;line-height:1.25;font-weight:500;margin:18px 0 22px}.hero p{max-width:760px;color:var(--muted);font-size:20px}.toc{display:flex;flex-wrap:wrap;gap:12px;padding:20px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.toc a{padding:8px 12px;background:var(--card);border:1px solid var(--hairline);border-radius:6px}section{padding:48px 0 8px;scroll-margin-top:24px}article{background:var(--card);border:1px solid var(--hairline);border-radius:12px;overflow:hidden;margin-bottom:24px}.story-image{margin:0;background:var(--ash);border-bottom:1px solid var(--hairline)}.story-image img{width:100%;max-height:580px;object-fit:contain;display:block}.story-image figcaption{font-size:12px;padding:12px 24px;color:var(--muted)}.article-body{padding:32px 40px}.article-meta{display:flex;justify-content:space-between;gap:16px}.article-body>p{white-space:pre-line;max-width:82ch}.take{background:var(--ash);border-left:3px solid var(--moss);padding:18px 22px;margin:26px 0}.take strong{font-size:14px;font-weight:500}.take p{margin:8px 0 0;font-size:16px}.sources{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;padding:16px 0}.post{border-top:1px solid var(--hairline);padding:20px 0 4px}summary{cursor:pointer;color:var(--fern)}.post p{font-size:15px;overflow-wrap:anywhere;white-space:pre-line}button{background:var(--moss);border:0;border-radius:6px;padding:10px 16px;color:white;cursor:pointer}button:hover{filter:brightness(.9)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--moss);outline-offset:4px}.post span{font-size:12px}.post textarea{display:block;width:100%;min-height:160px}.notice{padding:20px;background:#fef3c7}.empty{padding:40px}footer{padding-top:48px;padding-bottom:40px;color:var(--muted);line-height:2;overflow-wrap:anywhere}@media(min-width:1000px){article{display:grid;grid-template-columns:38% 62%}.story-image{border-bottom:0;border-right:1px solid var(--hairline);height:100%}.story-image img{height:auto;max-height:none}.story-image figcaption{padding:16px}article:not(:has(.story-image)){display:block}.article-body{padding:28px 32px}}@media(max-width:640px){header,main,footer{padding-left:18px;padding-right:18px}.hero{padding:36px 0 24px}h1{font-size:34px}h2{font-size:26px}h3{font-size:24px}.hero p{font-size:18px}.article-body{padding:24px 20px}.article-meta{flex-wrap:wrap}.toc{gap:8px}.toc a{padding:8px}body{font-size:17px}section{padding-top:32px}.take{padding:14px 16px}}
