@font-face{font-family:Fixel Text;src:url(/fonts/fixel-text-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0020-007E,U+00A0-00FF,U+0400-045F,U+0490-0491,U+02BC,U+00AB,U+00BB,U+201E,U+201C,U+2116}@font-face{font-family:Fixel Text;src:url(/fonts/fixel-text-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0020-007E,U+00A0-00FF,U+0400-045F,U+0490-0491,U+02BC,U+00AB,U+00BB,U+201E,U+201C,U+2116}@font-face{font-family:Lora;src:url(/fonts/lora-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0020-007E,U+00A0-00FF,U+0400-045F,U+0490-0491,U+02BC,U+00AB,U+00BB,U+201E,U+201C,U+2116}@font-face{font-family:Lora;src:url(/fonts/lora-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0020-007E,U+00A0-00FF,U+0400-045F,U+0490-0491,U+02BC,U+00AB,U+00BB,U+201E,U+201C,U+2116}@font-face{font-family:Lora;src:url(/fonts/lora-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0020-007E,U+00A0-00FF,U+0400-045F,U+0490-0491,U+02BC,U+00AB,U+00BB,U+201E,U+201C,U+2116}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0020-007E,U+00A0-00FF,U+0400-045F,U+0490-0491,U+02BC,U+00AB,U+00BB,U+201E,U+201C,U+2116}:root{--font-body: "Fixel Text", "IBM Plex Sans", system-ui, sans-serif;--font-heading: "Lora", "PT Serif", Georgia, serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--font-size-base: 19px;--font-size-sm: 16px;--font-size-h1: 2rem;--font-size-h2: 1.5rem;--font-size-h3: 1.25rem;--line-height-body: 1.65;--line-height-heading: 1.25;--prose-width: 68ch;--listing-width: 72ch;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 32px;--space-xl: 64px;--bg: #faf9f7;--text: #1a1a1a;--text-muted: #6b7280;--accent: #2563eb;--border: #e5e7eb;--callout-bg: #f0f4ff;--code-bg: #f3f4f6;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #121212;--text: #e8e6e1;--text-muted: #9ca3af;--accent: #60a5fa;--border: #2d2d2d;--callout-bg: #1e1e2e;--code-bg: #1e1e1e}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html:focus-within{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-body);color:var(--text);background:var(--bg);font-feature-settings:"kern","liga";text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:lang(uk){quotes:"«" "»" "„" "“"}:lang(uk) q:before{content:open-quote}:lang(uk) q:after{content:close-quote}p,li,blockquote{hyphens:auto;overflow-wrap:break-word}a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}::selection{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--text)}img,video{max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:var(--line-height-heading);font-weight:700}button,[role=button],input[type=submit]{min-height:44px}.site-header{max-width:var(--listing-width);margin:0 auto;padding:var(--space-lg) var(--space-md) var(--space-md)}.site-header a{color:var(--text);text-decoration:none;font-family:var(--font-heading);font-weight:700;font-size:1.125rem}.site-tagline{margin:var(--space-xs) 0 0;color:var(--text-muted);font-size:var(--font-size-sm)}.site-footer{max-width:var(--listing-width);margin:var(--space-xl) auto 0;padding:var(--space-lg) var(--space-md);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--font-size-sm);text-align:center}.site-footer a{color:var(--text-muted)}.container-listing{max-width:var(--listing-width);margin:0 auto;padding:var(--space-md)}.container-post{max-width:var(--prose-width);margin:0 auto;padding:var(--space-md)}.post-list{list-style:none;padding:0;margin:0}.year-group{margin:var(--space-lg) 0 0}.year-group:first-child{margin-top:0}.year-heading{font-family:var(--font-body);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--space-sm);font-weight:700}.listing-row{display:grid;grid-template-columns:6ch 1fr auto;gap:var(--space-md);align-items:baseline;padding-block:12px;border-bottom:1px solid var(--border)}.listing-row:last-child{border-bottom:0}.listing-date{color:var(--text-muted);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.listing-title{font-family:var(--font-heading);font-size:1.0625rem;line-height:1.35;min-width:0}.listing-title a{color:var(--text);text-decoration:none}.listing-row:hover{background:color-mix(in srgb,var(--text) 3%,transparent)}.listing-row:hover .listing-title a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.listing-star{color:var(--accent);margin-right:4px;font-size:.875em}.listing-meta{display:flex;gap:var(--space-sm);align-items:baseline;color:var(--text-muted);font-size:var(--font-size-sm);white-space:nowrap}.listing-time{font-variant-numeric:tabular-nums}.listing-tag{color:var(--text-muted)}@media(max-width:640px){.listing-row{grid-template-columns:6ch 1fr;grid-template-areas:"date title" ".    meta";row-gap:4px}.listing-date{grid-area:date}.listing-title{grid-area:title}.listing-meta{grid-area:meta;justify-content:flex-start}}.post-header{margin:var(--space-lg) 0 var(--space-md)}.post-header h1{margin:0 0 var(--space-sm);font-size:var(--font-size-h1)}.post-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;color:var(--text-muted);font-size:var(--font-size-sm)}.post-meta>*:not(:first-child):before{content:"· ";color:var(--text-muted)}.post-meta>[hidden]{display:none}.post-cover{margin:var(--space-md) 0 var(--space-lg)}.post-cover img{width:100%;height:auto;border-radius:6px;display:block}.prose h2{margin-top:var(--space-lg);font-size:var(--font-size-h2)}.prose h3{margin-top:var(--space-md);font-size:var(--font-size-h3)}.prose h2:has(+h2){font-family:var(--font-body);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-top:var(--space-xl);margin-bottom:0;line-height:1.2}.prose h2:has(+h2)+h2{margin-top:var(--space-xs)}.prose p,.prose ul,.prose ol{margin:var(--space-md) 0}.prose pre{background:var(--code-bg);padding:var(--space-md);border-radius:6px;font-family:var(--font-mono);font-size:.875em;font-variant-ligatures:none;line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;max-width:100%}.prose code{background:var(--code-bg);padding:.125rem .375rem;border-radius:4px;font-family:var(--font-mono);font-size:.875em;font-variant-ligatures:none;word-break:break-word;overflow-wrap:anywhere}.prose pre code{background:transparent;padding:0;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.prose blockquote{border-left:3px solid var(--border);margin:var(--space-md) 0;padding:var(--space-xs) 0 var(--space-xs) var(--space-md);color:var(--text-muted)}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:.75rem;color:var(--text-muted);border:1px solid var(--border);padding:2px 8px;border-radius:999px}.post-footer{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border)}.related h2{font-size:var(--font-size-h3);margin:0 0 var(--space-sm)}.related ul{list-style:none;padding:0;margin:0}.related li{padding:6px 0}.post-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.post-action{display:inline-flex;align-items:center;gap:.5em;padding:.45rem .9rem;border:1px solid var(--border);border-radius:999px;color:var(--text);text-decoration:none;font-family:var(--font-body);font-size:.9375em;line-height:1.2;white-space:nowrap;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.post-action:hover,.post-action:focus-visible{border-color:var(--accent);background-color:var(--callout-bg);text-decoration:none}.post-action-icon{width:16px;height:16px;flex-shrink:0}.pull-quote{font-family:var(--font-heading);font-style:italic;font-size:1.2em;line-height:1.45;max-width:60ch;margin:var(--space-lg) auto;padding-left:var(--space-md);border-left:3px solid var(--accent);color:var(--text)}.callout{background:var(--callout-bg);border-left:3px solid var(--accent);padding:var(--space-md);border-radius:4px;margin:var(--space-md) 0}.callout-title{margin:0 0 var(--space-xs);font-weight:700;font-size:var(--font-size-sm);letter-spacing:.02em}.callout-body>:first-child{margin-top:0}.callout-body>:last-child{margin-bottom:0}.callout-warning{border-left-color:#d97706}.callout-info{border-left-color:var(--accent)}.view-count{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1}.view-count svg{display:block}.view-count[hidden]{display:none}figure{margin:var(--space-md) 0}.post-video{position:relative;aspect-ratio:16 / 9;width:100%;max-width:720px;margin:0 auto;background:#000;border-radius:6px;overflow:hidden}.post-video video{width:100%;height:100%;display:block}figcaption{margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--text-muted);text-align:center}.questionnaire{margin:var(--space-lg) 0;padding:var(--space-md);border:1px solid var(--border);border-radius:8px;background:var(--code-bg)}.questionnaire h3{margin:0 0 var(--space-md);font-size:1.125rem;font-family:var(--font-heading)}.questionnaire .q{margin-bottom:var(--space-md);display:flex;flex-direction:column;gap:6px}.questionnaire label{font-weight:500;font-size:.9375rem}.questionnaire input[type=text],.questionnaire textarea{width:100%;padding:10px;font:inherit;font-size:18px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.questionnaire textarea{min-height:96px;resize:vertical}.questionnaire .radio-group{display:flex;flex-direction:column;gap:6px}.questionnaire .radio-option{display:flex;align-items:center;gap:8px;min-height:44px;font-weight:400}.questionnaire button{font:inherit;font-size:1rem;padding:10px 20px;min-height:44px;background:var(--accent);color:#fff;border:0;border-radius:6px;cursor:pointer}.questionnaire button:hover{filter:brightness(1.05)}.questionnaire .thanks{padding:12px;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--text)}
