/*
Theme Name: Volodya Terminal
Theme URI: https://volodya.pro
Author: Владимир Смирнов
Description: Кастомная тема блога в терминальном стиле сайта volodya.pro — тёмный фон, зелёный акцент, моноширинный шрифт, «терминальные окна», живой matrix-фон и vim-статус в подвале.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: volodya-terminal
*/

:root{
  --bg:#0d1117; --panel:#161b22; --panel-2:#1b222b; --line:#273040;
  --tx:#e6edf3; --muted:#8b949e; --dim:#6b7480;
  --green:#3fb950; --cyan:#56d4dd; --yellow:#d29922; --purple:#bc8cff; --orange:#e3894e; --pink:#f778ba;
  --radius:12px;
  --mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --wrap:840px;
}

*,*::before,*::after{box-sizing:border-box;}
html{background:var(--bg); scroll-behavior:smooth;}
body{
  margin:0; background:transparent; color:var(--tx);
  font-family:var(--sans); line-height:1.7; font-size:16px;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--green); text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%; height:auto;}

canvas.bgc{position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.45;}
@media (prefers-reduced-motion:reduce){canvas.bgc{display:none;}}

.wrap{max-width:var(--wrap); margin:0 auto; padding:0 clamp(16px,4vw,28px);}

/* ── Шапка ─────────────────────────────────────────── */
.site-header{
  position:sticky; top:0; z-index:30;
  background:rgba(13,17,23,.85); backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.site-header__in{max-width:var(--wrap); margin:0 auto; padding:0 clamp(16px,4vw,28px);
  height:56px; display:flex; align-items:center; gap:22px;}
.brand{font-family:var(--mono); font-weight:700; font-size:15px; display:inline-flex; gap:5px; align-items:baseline; white-space:nowrap;}
.brand .p{color:var(--green);} .brand .n{color:var(--tx);} .brand .d{color:var(--muted);} .brand .t{color:var(--cyan);}
.site-nav{flex:1; display:flex; gap:4px; overflow-x:auto; scrollbar-width:none;}
.site-nav::-webkit-scrollbar{display:none;}
.site-nav a{font-family:var(--mono); font-size:13px; color:var(--muted); padding:6px 10px; border-radius:8px; border:1px solid transparent; white-space:nowrap; transition:color .12s,background .12s,border-color .12s;}
.site-nav a:hover{color:var(--tx); background:var(--panel-2); text-decoration:none;}
.site-nav a.is-active,.site-nav .current-menu-item>a{color:var(--green); border-color:rgba(63,185,80,.4); background:rgba(63,185,80,.08);}
.header-cta{font-family:var(--mono); font-size:13px; font-weight:700; color:var(--cyan); border:1px solid rgba(86,212,221,.35); border-radius:8px; padding:6px 12px; white-space:nowrap;}
.header-cta:hover{background:rgba(86,212,221,.12); text-decoration:none;}

/* ── Основной контейнер ─────────────────────────────── */
.site-main{padding:clamp(28px,5vw,52px) 0 40px;}
.page-head{margin-bottom:26px;}
.page-head__cmd{font-family:var(--mono); font-size:13px; color:var(--dim); margin-bottom:8px;}
.page-head__cmd b{color:var(--green);}
.page-head h1{font-family:var(--mono); font-weight:700; letter-spacing:-.5px; font-size:clamp(24px,4.5vw,34px); margin:0; color:var(--tx); text-wrap:balance;}
.page-head p{color:var(--muted); margin:8px 0 0;}

/* ── «Терминальное окно» (карточка) ─────────────────── */
.win{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-bottom:22px;}
.win__bar{display:flex; align-items:center; gap:10px; padding:11px 14px; border-bottom:1px solid var(--line); background:var(--panel-2); box-shadow:inset 3px 0 0 var(--green);}
.dots{display:flex; gap:6px;} .dots i{width:11px;height:11px;border-radius:50%;display:block;}
.dots i:nth-child(1){background:#ff5f57;} .dots i:nth-child(2){background:#febc2e;} .dots i:nth-child(3){background:#28c840;}
.win__path{font-family:var(--mono); font-size:12.5px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.win__path .c{color:var(--green);}
.win__body{padding:16px 18px 20px;}

/* превью поста */
.post-cat{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--cyan);}
.post-cat a{color:var(--cyan);}
.post-title{font-family:var(--mono); font-weight:700; font-size:clamp(19px,2.6vw,24px); line-height:1.3; margin:6px 0 8px; letter-spacing:-.3px;}
.post-title a{color:var(--tx);} .post-title a:hover{color:var(--green); text-decoration:none;}
.post-meta{font-family:var(--mono); font-size:12px; color:var(--dim); display:flex; flex-wrap:wrap; gap:4px 14px; margin-bottom:12px;}
.post-thumb{display:block; border-radius:8px; overflow:hidden; margin:0 0 14px;}
.post-thumb img{display:block; width:100%; object-fit:cover;}
.post-excerpt{color:var(--muted); font-size:15px;}
.read-more{display:inline-flex; margin-top:14px; font-family:var(--mono); font-size:13px; color:var(--green); border:1px solid rgba(63,185,80,.4); background:rgba(63,185,80,.1); border-radius:8px; padding:8px 14px;}
.read-more:hover{background:rgba(63,185,80,.2); text-decoration:none;}

/* ── Контент статьи ─────────────────────────────────── */
.entry{font-size:16.5px; color:var(--tx);}
.entry p{margin:0 0 1.15em;}
.entry h2{font-family:var(--mono); font-size:24px; margin:1.5em 0 .5em; color:var(--tx);}
.entry h3{font-family:var(--mono); font-size:20px; margin:1.3em 0 .4em; color:var(--tx);}
.entry a{color:var(--green); text-decoration:underline; text-underline-offset:2px;}
.entry ul,.entry ol{margin:0 0 1.15em; padding-left:1.4em;}
.entry li{margin:.3em 0;}
.entry blockquote{margin:1.2em 0; padding:12px 18px; border-left:3px solid var(--green); background:var(--panel); color:var(--muted); border-radius:0 8px 8px 0;}
.entry code{font-family:var(--mono); font-size:.9em; background:var(--panel-2); padding:2px 6px; border-radius:5px; color:var(--cyan);}
.entry pre{background:#0b0f14; border:1px solid var(--line); border-radius:8px; padding:16px; overflow-x:auto;}
.entry pre code{background:none; padding:0; color:var(--tx);}
.entry img{border-radius:8px;}
.entry hr{border:0; border-top:1px solid var(--line); margin:2em 0;}

/* пагинация */
.pager{display:flex; gap:10px; flex-wrap:wrap; margin:14px 0 0; font-family:var(--mono); font-size:13px;}
.pager a,.pager .current{padding:8px 14px; border:1px solid var(--line); border-radius:8px; color:var(--tx);}
.pager a:hover{border-color:var(--muted); text-decoration:none;}
.pager .current{background:var(--green); border-color:var(--green); color:#08130b;}

/* теги/категории под статьёй */
.entry-foot{margin-top:22px; padding-top:18px; border-top:1px solid var(--line); font-family:var(--mono); font-size:12px; color:var(--muted); display:flex; flex-wrap:wrap; gap:8px;}
.chip{border:1px solid var(--line); border-radius:999px; padding:4px 11px; color:var(--muted);}
.chip:hover{color:var(--green); border-color:rgba(63,185,80,.4); text-decoration:none;}

/* комментарии — компактно */
.comments{margin-top:30px;}
.comments h2{font-family:var(--mono); font-size:18px; color:var(--tx);}
.comment-list{list-style:none; padding:0;}
.comment-body{border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin-bottom:12px; background:var(--panel);}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
  width:100%; background:var(--bg); border:1px solid var(--line); border-radius:8px; color:var(--tx); font-family:var(--mono); padding:10px 12px; margin:6px 0;}
.comment-form .submit,.wp-block-search__button,button,input[type=submit]{
  font-family:var(--mono); background:rgba(63,185,80,.12); border:1px solid rgba(63,185,80,.4); color:var(--green); border-radius:8px; padding:9px 16px; cursor:pointer;}

/* ── Подвал: vim-статус ─────────────────────────────── */
.vim{
  position:sticky; bottom:0; z-index:20; margin-top:40px;
  display:flex; align-items:stretch; min-height:28px; line-height:1;
  background:var(--panel-2); border-top:1px solid var(--line);
  font-family:var(--mono); font-size:11.5px; color:var(--muted);
}
.vim__cell{padding:7px 12px; display:flex; align-items:center; white-space:nowrap;}
.vim__mode{font-weight:700; background:var(--green); color:#08130b;}
.vim__file{color:var(--tx);}
.vim__spacer{flex:1;}
.vim__branch{color:var(--yellow);}
@media (max-width:520px){.vim__pos{display:none;}}

.site-credit{padding:22px 0 30px; text-align:center; font-family:var(--mono); font-size:12px; color:var(--dim);}
.site-credit a{color:var(--green);}

:focus-visible{outline:2px solid var(--green); outline-offset:2px;}
