:root {
  color-scheme: dark;
  --bg: #0c100e;
  --ink: #cbd4cd;
  --muted: #7d9082;
  --green: #a0d7a2;
  --error: #e69d91;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 14px;
  line-height: 1.8;
  font-synthesis: none;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
.mode-panel { max-width: 96ch; margin: 20px 0; }
.mode-title { color: var(--green); margin: 0 0 22px; }
.mode-form { margin: 0; max-width: 88ch; }
.mode-field { display: block; margin: 0 0 18px; }
.field-label { display: block; color: var(--muted); font-size: 12px; margin-bottom: 5px; }
.mode-input { display: block; width: 100%; border: 0; border-bottom: 1px solid #35463a; border-radius: 0; padding: 6px 0; background: transparent; color: var(--ink); font: inherit; line-height: inherit; caret-color: var(--green); }
.mode-input:focus { outline: none; border-color: var(--green); }
.mode-input[type=password],.mode-input[name=username] { max-width: 44ch; }
textarea.mode-input { min-height: 100px; resize: vertical; }
textarea.editor-text { min-height: 46vh; border: 0; padding: 0; }
.mode-actions { display: flex; flex-wrap: wrap; gap: 10px 20px; margin: 22px 0 10px; }
.terminal-action { border: 0; background: transparent; color: var(--green); padding: 3px 0; font: inherit; cursor: pointer; }
.terminal-action:hover { text-decoration: underline; text-underline-offset: 4px; }
.terminal-action:disabled { color: var(--muted); cursor: wait; }
.mode-error { color: var(--error); white-space: pre-wrap; margin: 12px 0; }
.mode-error:empty { display: none; }
.editing .terminal { padding-top: 24px; }
.editing .mode-panel { margin-top: 0; max-width: none; }
.editor-preview { min-height: 46vh; }
.post-body { font: inherit; white-space: pre-wrap; overflow-wrap: anywhere; max-width: 90ch; margin: 18px 0; }
.post-meta { color: var(--muted); margin: 0 0 6px; }
.post-link { text-decoration: none; }
.post-link:hover { text-decoration: underline; }
.feed-entry { max-width: 88ch; margin: 20px 0 30px; }
.post-excerpt { color: var(--muted); white-space: pre-wrap; margin: 0; }
.author-entry { margin: 16px 0; }
@media (max-width:600px) { .mode-input { font-size:16px; } .mode-actions { gap:12px 16px; } textarea.editor-text { min-height:40dvh; } }
html { min-height: 100%; scrollbar-color: #35463a var(--bg); }
body { margin: 0; min-height: 100vh; min-height: 100dvh; color: var(--ink); background: var(--bg); }
::selection { color: var(--bg); background: var(--green); }
.terminal { width: 100%; min-height: 100vh; min-height: 100dvh; padding: 30px 36px max(48px,env(safe-area-inset-bottom)); cursor: text; }
.terminal-output { overflow-wrap: anywhere; }
.output-block { margin: 0 0 22px; }
.welcome { margin-bottom: 30px; }
.session-label { margin: 0 0 23px; color: var(--muted); font-size: 12px; letter-spacing: .02em; }
.session-label span { color: var(--green); }
.output-text { margin: 0 0 9px; max-width: 88ch; }
.output-title { color: var(--green); font: inherit; margin: 0 0 10px; }
.output-subtitle { color: var(--muted); margin: 0 0 14px; }
.welcome-tip { color: var(--muted); margin: 18px 0 0; }
.welcome-tip code { color: var(--green); font: inherit; }
.welcome-keys { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.muted { color: var(--muted); }
.command-echo { margin: 0 0 9px; white-space: pre-wrap; overflow-wrap: anywhere; }
.command-echo .echo-user { color: var(--green); }
.command-echo .echo-path { color: var(--ink); }
.command-echo .echo-dollar { color: var(--muted); }
.command-form { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 1ch; margin: 0; min-height: 1.8em; }
.prompt { display: flex; flex-wrap: wrap; align-items: baseline; max-width: 100%; white-space: pre-wrap; }
.prompt-user { color: var(--green); }
.prompt-colon { color: var(--muted); }
#prompt-path { overflow-wrap: anywhere; min-width: 0; }
.prompt-dollar { color: var(--muted); margin-left: .7ch; }
.command-form input { flex: 1 1 12ch; min-width: 8ch; padding: 0; border: 0; border-radius: 0; outline: none; background: transparent; color: var(--ink); font: inherit; line-height: inherit; caret-color: var(--green); caret-shape: block; }
.command-form input:disabled { cursor: wait; }
.command-form input:placeholder-shown:focus { caret-color: transparent; background-image: linear-gradient(var(--green),var(--green)); background-repeat: no-repeat; background-position: left center; background-size: .6em 1.25em; animation: cursor-blink 1.1s step-end infinite; }
@keyframes cursor-blink { 0%,49% { background-size: .6em 1.25em; } 50%,100% { background-size: 0 1.25em; } }
.enter-button { display: none; }
.completion { color: var(--muted); margin: 6px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.completion:empty { display: none; }
.help-grid { display: grid; grid-template-columns: 18ch minmax(0,1fr); gap: 3px 3ch; max-width: 84ch; }
.help-grid code { font: inherit; color: var(--green); }
.help-grid span { color: var(--muted); }
.project-entry { margin: 18px 0 23px; max-width: 88ch; }
.project-heading { display: flex; flex-wrap: wrap; gap: 0 2ch; }
.project-heading span { color: var(--green); }
.project-heading small { font: inherit; color: var(--muted); }
.project-entry p { margin: 5px 0; }
.project-stack { color: var(--muted); }
.skills-row { display: flex; gap: 3ch; margin: 8px 0; max-width: 90ch; }
.skills-row b { font-weight: 400; color: var(--green); flex: 0 0 16ch; }
.file-list { display: flex; flex-wrap: wrap; gap: 0 3ch; }
.file-list .directory { color: var(--green); }
.output-pre { margin: 0; font: inherit; white-space: pre-wrap; overflow-wrap: anywhere; max-width: 96ch; }
.error { color: var(--error); }
a { color: var(--green); text-underline-offset: 4px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible,button:focus-visible { outline: 1px solid var(--green); outline-offset: 4px; }
.game-panel { margin: 12px 0; padding-left: 2ch; border-left: 1px solid var(--muted); }
.game-panel p { margin: 4px 0; }
.game-target { display: block; font: inherit; color: var(--green); margin: 10px 0; user-select: none; }
.matrix { font: inherit; line-height: 1.5; color: var(--green); white-space: pre; overflow: hidden; max-width: 90ch; margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.noscript { padding: 24px 36px; }
.light { color-scheme: light; --bg: #f0f2ed; --ink: #293b2f; --muted: #5f7465; --green: #2c673d; --error: #a43e30; }
@media (max-width: 600px) {
  :root { font-size: 13px; line-height: 1.85; }
  .terminal { padding: 22px 18px max(40px,env(safe-area-inset-bottom)); }
  .session-label { font-size: 11px; }
  .welcome-keys { font-size: 11px; }
  .command-form input { font-size: 16px; }
  .help-grid { grid-template-columns: 15ch minmax(0,1fr); gap: 6px 1ch; }
  .skills-row { flex-direction: column; gap: 0; margin-bottom: 14px; }
  .skills-row b { flex-basis: auto; }
}
@media (pointer: coarse) {
  .enter-button { display: block; color: var(--muted); font: inherit; font-size: 20px; background: transparent; border: 0; padding: 0 6px; min-width: 32px; align-self: center; cursor: pointer; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation: none !important; } }
/* The editor keeps the terminal palette; document formatting is shared with posts. */
.editor-modes { display:flex; gap:24px; margin:0 0 12px; border-bottom:1px solid #35463a; }
.editor-modes button { color:var(--muted); padding:4px 0 9px; }
.editor-modes button[aria-pressed=true] { color:var(--green); box-shadow:0 1px var(--green); }
.editor-toolbar { display:flex; flex-wrap:wrap; gap:4px 18px; margin:0 0 14px; }
.editor-toolbar .terminal-action { color:var(--muted); font-size:12px; min-height:32px; }
.editor-toolbar .terminal-action[aria-pressed=true] { color:var(--green); text-decoration:underline; text-underline-offset:5px; }
.editor-status,.editor-counter,.editor-hint { font-size:11px; margin:8px 0 16px; }
.editor-link { border-left:1px solid var(--muted); padding:0 0 4px 16px; margin:8px 0 18px; }
.editor-link .terminal-action { margin-right:20px; }
.editor-rich .ProseMirror { min-height:40vh; outline:none; caret-color:var(--green); }
.editor-rich .ProseMirror:focus-visible { outline:none; }
.editor-rich .ProseMirror[contenteditable=false] { opacity:.65; }
.editor-rich .ProseMirror[data-empty=true]:before { content:'Начните писать…'; position:absolute; top:0; left:0; color:var(--muted); pointer-events:none; }
.editor-source textarea { min-height:40vh; tab-size:2; }
.markdown-body { font:inherit; line-height:1.8; white-space:normal; overflow-wrap:anywhere; }
.markdown-body p { margin:0 0 1em; }
.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6 { font-family:inherit; line-height:1.4; color:var(--green); margin:1.4em 0 .6em; }
.markdown-body h1 { font-size:1.6em; }.markdown-body h2 { font-size:1.3em; }.markdown-body h3 { font-size:1.1em; }
.markdown-body h4,.markdown-body h5,.markdown-body h6 { font-size:1em; }
.markdown-body > :first-child { margin-top:0; }
.markdown-body strong { font-weight:700; color:var(--green); }
.markdown-body blockquote { margin:1em 0; padding:0 0 0 2ch; border-left:2px solid var(--muted); color:var(--muted); }
.markdown-body ul,.markdown-body ol { padding-left:3ch; margin:1em 0; }
.markdown-body li p { margin:.3em 0; }
.markdown-body code { font:inherit; color:var(--green); background:color-mix(in srgb,var(--ink) 7%,transparent); padding:.15em .3em; border-radius:2px; }
.markdown-body pre { white-space:pre; overflow-x:auto; max-width:100%; margin:1em 0; padding:14px 16px; background:color-mix(in srgb,var(--ink) 5%,transparent); border-left:1px solid #35463a; line-height:1.6; }
.markdown-body pre code { display:block; background:none; padding:0; color:var(--ink); }
.markdown-body hr { border:0; border-top:1px solid #35463a; margin:1.5em 0; }
.editor-rich .ProseMirror pre { white-space:pre-wrap; }
.editor-preview { min-height:40vh; }
@media(max-width:600px) { .editor-toolbar { gap:4px 16px; }.editor-toolbar .terminal-action { min-height:40px; }.editor-rich { font-size:16px; }.editor-modes button { min-height:44px; }.markdown-body pre { padding:10px; }.editor-rich .ProseMirror { min-height:35dvh; } }
.community-nav { display:flex; flex-wrap:wrap; gap:8px 24px; margin:12px 0; }
.community-nav a { text-decoration:none; }.community-nav a:hover { text-decoration:underline; }
.news-banner { color:var(--green); border-left:2px solid var(--green); padding-left:16px; max-width:88ch; margin:12px 0 24px; }
.portfolio-headline { color:var(--ink); font-size:1.1em; margin:0 0 8px; }
select.mode-input { width:auto; min-width:24ch; color:var(--ink); background:var(--bg); cursor:pointer; }
select.mode-input:disabled { opacity:.6; cursor:wait; }
.post-excerpt { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

.note-comparison { border-top: 1px solid var(--muted); padding-top: 16px; margin-top: 16px; }

.collab-cursor { display: inline; position: relative; border-color: var(--cursor-color); border-left: 2px solid; border-right: 0; margin-left: -1px; pointer-events: none; }
.collab-cursor-label { position: absolute; bottom: 100%; left: -2px; color: #0c100e; background: var(--cursor-color); font: 11px ui-monospace,monospace; padding: 2px 4px; white-space: nowrap; border-radius: 3px 3px 3px 0; }
.collab-selection { background: var(--cursor-selection); }
.c0 { --cursor-color: #a6e3a1; --cursor-selection: #a6e3a140; border-color: #a6e3a1; }
.c1 { --cursor-color: #89b4fa; --cursor-selection: #89b4fa40; border-color: #89b4fa; }
.c2 { --cursor-color: #f9e2af; --cursor-selection: #f9e2af40; border-color: #f9e2af; }
.c3 { --cursor-color: #f5c2e7; --cursor-selection: #f5c2e740; border-color: #f5c2e7; }
.c4 { --cursor-color: #fab387; --cursor-selection: #fab38740; border-color: #fab387; }
.c5 { --cursor-color: #94e2d5; --cursor-selection: #94e2d540; border-color: #94e2d5; }

.echo-message { margin: 1.5rem 0; padding: .25rem 0 .75rem 1rem; border-left: 1px solid var(--muted); overflow-wrap: anywhere; }
.echo-message .output-text { margin: .25rem 0; }
.echo-focus { border-left: 2px solid var(--green); }

.collab-members { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:12px 0 22px; font-size:12px; }
.collab-member { color:var(--cursor-color); border-bottom:2px solid var(--cursor-color); padding:2px 0; }
.collab-member::before { content:"● "; }
.collab-cursor-label { z-index:2; }

.light .c0 { --cursor-color:#2e7d32; --cursor-selection:#2e7d3233; border-color:#2e7d32; }
.light .c1 { --cursor-color:#2458a6; --cursor-selection:#2458a633; border-color:#2458a6; }
.light .c2 { --cursor-color:#805b00; --cursor-selection:#805b0033; border-color:#805b00; }
.light .c3 { --cursor-color:#8c3582; --cursor-selection:#8c358233; border-color:#8c3582; }
.light .c4 { --cursor-color:#a3470a; --cursor-selection:#a3470a33; border-color:#a3470a; }
.light .c5 { --cursor-color:#14665c; --cursor-selection:#14665c33; border-color:#14665c; }
.light .collab-cursor-label { color:#fff; }
.bbs-context { color:var(--muted); border-left:2px solid var(--muted); margin:12px 0 20px; padding-left:14px; white-space:pre-wrap; max-height:12rem; overflow:auto; }
.echo-message > .terminal-action,.output-block > .terminal-action,.feed-entry > .terminal-action { margin-right:18px; }

.item-controls{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.item-controls .selected{color:var(--green);border-color:currentColor}.reply-context{border-left:2px solid currentColor;padding-left:12px;margin:10px 0}
.has-save-control{position:relative}.bookmark-toggle{position:absolute;right:8px;top:6px;width:42px;height:42px;min-height:42px;padding:0!important;border:0!important;background:transparent!important;font-size:24px!important;line-height:1}.feed-entry.has-save-control>.post-meta,.output-block.has-save-control>.output-title{padding-right:40px}.item-controls{align-items:center;gap:5px;margin:10px 0}.item-controls .reaction-button{font-size:13px;min-width:42px;padding:6px 9px}.reaction-more{position:relative}.reaction-more>summary{cursor:pointer;list-style:none;min-width:42px;min-height:42px;text-align:center;line-height:42px}.reaction-more>summary::-webkit-details-marker{display:none}.reaction-menu{position:absolute;right:0;bottom:100%;display:flex;flex-direction:column;min-width:180px;padding:8px;border:1px solid var(--muted);background:var(--bg);z-index:5}.hashtags{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.hashtag{font-size:13px;text-decoration:none}.hashtag:hover{text-decoration:underline}
.tag-suggestions{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0;padding:8px;border:1px solid var(--muted)}.tag-suggestion{font:inherit;color:var(--green);background:transparent;border:1px solid var(--muted);padding:7px 10px;cursor:pointer;min-height:40px}.tag-suggestion[aria-selected=true]{border-color:var(--green);text-decoration:underline}

.vote-controls{display:flex;align-items:center;gap:2px;margin-top:8px;color:var(--muted,#82918c)}
.vote-controls .vote-arrow{border:0;background:transparent;padding:2px 6px;min-width:26px;min-height:30px;font-size:19px;color:inherit;box-shadow:none}.vote-controls .vote-arrow.selected{color:var(--accent,#79bda2);background:transparent}.vote-score{font-size:12px;min-width:12px;text-align:center;font-variant-numeric:tabular-nums}

.language-switcher{font:inherit;font-size:12px;min-width:54px;width:auto;min-height:34px;padding:6px;border:1px solid var(--border,#708076);border-radius:7px;background:transparent;color:inherit}.terminal-header .language-switcher{margin-left:auto}.top>div{align-items:center}.top .language-switcher{max-width:60px}

.terminal-tools{display:flex;justify-content:flex-end;padding:0 0 10px}.kanban-terminal{font-size:13px;line-height:1.8;overflow-x:auto}
