/* «Слои» (lookovica.com) - тема-скин: миниморфизм.
   Кладётся как /style.css. Стилизует HTML-обвязку Jinja-шаблонов;
   Jinja-логику и TAP-разметку НЕ меняем. Тёплая свечная палитра, тёмная тема,
   диалог человек↔модель различается тихо и на равных (2b), главная - модульная сетка (3a). */

:root{
  --paper:#FBF6EC; --ink:#3A2E22; --honey:#D99A2B; --h2:#C9822A; --h3:#B36A24;
  --deep:#B0761E; --qbg:#F6EAD0; --abg:#FFFDF7; --line:#E6D8BE; --muted:#9c8b6f;
  --rule:#EADFC6; --dek:#6f5b3f; --stripe:#F1E7D3;
}
@media(prefers-color-scheme:dark){:root{
  --paper:#201810; --ink:#ecdcc2; --honey:#E7B24E; --h2:#d59a3e; --h3:#c07f30;
  --deep:#d59a45; --qbg:#2a2013; --abg:#241c11; --line:#3a2e1c; --muted:#a08b66;
  --rule:#332815; --dek:#b6a181; --stripe:#2a2013;
}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:18px/1.62 Georgia,'Iowan Old Style',serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}

/* ---------- Ссылки / общая типографика ---------- */
a{color:var(--h3);text-decoration:none}
a:hover{color:var(--honey)}
strong{color:var(--deep);font-weight:650}
hr,.rule{border:none;border-top:1px solid var(--rule);margin:2.2em 0}
.muted,.date,small{color:var(--muted)}

h1{font:400 2.05em/1.18 Georgia,serif;margin:.18em 0 .12em;color:var(--ink);text-wrap:balance}
h2{font:400 1.34em/1.25 Georgia,serif;margin:44px 0 6px;color:var(--h2);scroll-margin-top:80px}
h3{font:400 1.16em/1.3 Georgia,serif;margin:1.4em 0 .3em;color:var(--ink)}
.kicker{color:var(--honey);font:600 .74em/1 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:.16em;text-transform:uppercase;margin:0}
.dek{font-size:1.1em;color:var(--dek);margin:.5em 0 0}
.epigraph,.intro em{font-style:italic;color:var(--muted)}
.lead{font-size:1.12em;margin:1.4em 0 0}
.lead::first-letter{font-size:3.1em;float:left;line-height:.78;padding:.05em .12em 0 0;color:var(--honey)}
.pull{border-left:3px solid var(--h3);padding:2px 0 2px 16px;margin:22px 0;font-style:italic;color:var(--dek);font-size:1.05em}

/* ================= РАСКЛАДКА: сайдбар + контент ================= */
.layout{display:block}
.content{width:100%;max-width:1000px;margin:0 auto;padding:26px 22px 90px}

/* Боковая навигация */
.sidebar{
  background:var(--paper);
  display:flex;flex-direction:column;
  padding:26px 24px 24px;
}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);margin-bottom:30px}
.brand .mark{width:30px;height:30px;flex:0 0 30px}
.brand .site-title{white-space:nowrap;font:700 1.15rem/1 Georgia,serif}
.brand small,.brand .brand-sub{display:block;font:600 .42em/1 -apple-system,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--honey);margin-top:5px}
.site-nav{display:flex;flex-direction:column;gap:16px}
.site-nav a{
  display:flex;align-items:center;gap:9px;
  font:600 .82rem/1 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  letter-spacing:.03em;color:var(--muted);padding-left:15px;
}
.site-nav a::before{content:none}
.site-nav a.is-current{color:var(--ink);padding-left:0}
.site-nav a.is-current::before{content:"";width:6px;height:6px;border-radius:99px;background:var(--honey);display:inline-block}
.site-nav a:hover{color:var(--honey)}
/* ================= ПЕРЕКЛЮЧАТЕЛЬ ЯЗЫКОВ ================= */
.lang-picker{margin-top:20px}
.lang-picker select{appearance:none;-webkit-appearance:none;background:var(--bg);color:var(--muted);border:1px solid var(--rule);border-radius:4px;padding:5px 24px 5px 8px;font:.75rem/1.4 -apple-system,sans-serif;cursor:pointer;width:100%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
.lang-picker select:hover{border-color:var(--honey);color:var(--ink)}
.lang-picker select:focus{outline:1px solid var(--honey);border-color:var(--honey)}

.side-foot{margin-top:auto;padding-top:26px}
.side-foot .epigraph{font:italic .78rem/1.5 Georgia,serif;margin:0 0 10px}
.side-foot a{font:600 .7rem/1 -apple-system,sans-serif;color:var(--h3)}
.side-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.mobile-bar .brand{margin:0}

/* Мобильная верхняя панель + гамбургер + затемнение */
.mobile-bar{display:none}
.scrim{display:none}
.hamburger{border:none;background:none;padding:0;margin:0;cursor:pointer;display:flex;flex-direction:column;gap:4px;width:22px}
.hamburger span{height:2px;background:var(--ink);border-radius:2px;display:block}
.nav-close{border:none;background:none;cursor:pointer;font:400 1.5rem/1 -apple-system,sans-serif;color:var(--muted);padding:0;margin-left:auto}

/* Десктоп: постоянный сайдбар слева */
@media(min-width:900px){
  .layout{display:flex;align-items:flex-start}
  .sidebar{
    position:sticky;top:0;align-self:flex-start;
    height:100vh;width:224px;flex:0 0 224px;
    border-right:1px solid var(--rule);
  }
  .nav-close{display:none}
}

/* Мобайл: сайдбар превращается в выдвижную панель (drawer) */
@media(max-width:899px){
  .sidebar{
    position:fixed;top:0;left:0;z-index:60;
    height:100%;width:78%;max-width:300px;
    border-right:1px solid var(--rule);
    box-shadow:3px 0 34px -12px rgba(0,0,0,.45);
    transform:translateX(-112%);
    transition:transform .3s cubic-bezier(.4,0,.2,1);
    overflow-y:auto;
  }
  body.nav-open .sidebar{transform:none}
  .brand{justify-content:space-between}
  .scrim{
    display:block;position:fixed;inset:0;z-index:50;
    background:rgba(32,24,16,.42);opacity:0;pointer-events:none;
    transition:opacity .3s ease;
  }
  body.nav-open .scrim{opacity:1;pointer-events:auto}
  .mobile-bar{
    display:flex;align-items:center;gap:13px;
    position:sticky;top:0;z-index:40;
    background:var(--paper);border-bottom:1px solid var(--rule);
    padding:15px 18px;
  }
  .mobile-bar .mark{width:22px;height:22px}
  .mobile-bar .site-title{font:700 1rem/1 Georgia,serif;color:var(--ink)}
  .content{padding:22px 18px 80px}
}

/* ================= ДИАЛОГ: имя на полях (2b) ================= */
/* Реплики автор верстает как <div class="turn ..." data-author-type="human|ai">
   с <span class="who">● Имя</span> внутри. Мы только скинуем оформление. */
.turn{
  display:grid;grid-template-columns:66px minmax(0,1fr);column-gap:20px;
  background:none!important;border:none!important;border-radius:0!important;
  padding:0!important;margin:22px 0;
}
.turn>*{grid-column:2;min-width:0}
.turn .who{
  grid-column:1;grid-row:1;justify-self:end;text-align:right;
  background:none!important;border:none!important;padding:0!important;margin:0;
  font:600 .6rem/1.3 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  letter-spacing:.11em;text-transform:uppercase;padding-top:.34em!important;
  display:inline-block;
}
.turn[data-author-type="human"] .who{color:var(--deep)}
.turn[data-author-type="ai"] .who{color:var(--muted)}
.turn p{margin:.5em 0}
.turn p:first-of-type{margin-top:0}
.turn p:last-child{margin-bottom:0}
.turn ul,.turn ol{margin:.6em 0;padding-left:1.2em}
.turn li{margin:.35em 0}
.turn .pull{margin:1em 0 0}
/* Мобайл: имя врезкой в начале первого абзаца, текст на всю ширину */
@media(max-width:620px){
  .turn{display:block;grid-template-columns:none;margin:22px 0}
  .turn>*{grid-column:auto}
  .turn .who{
    float:left;margin:0 .45em 0 0!important;padding:0!important;
    font:650 1em/1.62 Georgia,serif!important;
    letter-spacing:0;text-transform:none;
    display:inline;
  }
  .turn[data-author-type="human"] .who{color:var(--deep)}
  .turn[data-author-type="ai"] .who{color:var(--h3)}
  .turn p:first-of-type{margin-top:0}
}

/* ================= ОГЛАВЛЕНИЕ-ИЗ-ВОПРОСОВ ================= */
.toc{margin:26px 0 6px;border:1px solid var(--line);border-radius:12px;background:var(--abg)}
.toc summary{cursor:pointer;list-style:none;padding:14px 16px;font:600 .92rem/1.3 -apple-system,sans-serif;color:var(--h3)}
.toc summary::-webkit-details-marker{display:none}
.toc summary::before{content:"◕  "}
.toc ol{margin:0 0 14px;padding:0 18px 0 40px}
.toc li{margin:.4em 0}
.toc a{color:var(--ink)}
.toc a:hover{color:var(--honey)}

/* ================= ПОСТ ================= */
article.post>header{margin-bottom:8px}
article.post>header .date{display:block;font:.78rem/1 -apple-system,sans-serif;color:var(--muted);letter-spacing:.02em;margin-bottom:12px}
article.post{max-width:820px;margin-inline:auto}
article:not(.post){max-width:720px;margin-inline:auto}

/* Десктоп: липкая колонка оглавления слева от текста */
@media(min-width:1080px){
  article.post{
    display:grid;grid-template-columns:200px minmax(0,1fr);
    column-gap:48px;align-items:start;max-width:900px;
  }
  article.post>*{grid-column:2;min-width:0}
  article.post>header{grid-column:1 / -1}
  article.post>.tap-footer{grid-column:1 / -1}
  article.post>.toc{
    grid-column:1;grid-row:2 / span 9999;
    position:sticky;top:26px;align-self:start;
    margin:0;border:none;background:none;
  }
  article.post>.toc summary{padding:0 0 12px;color:var(--muted);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
  article.post>.toc summary::before{content:""}
  article.post>.toc[open] summary{margin-bottom:4px}
  article.post>.toc ol{padding:0;list-style:none;counter-reset:q}
  article.post>.toc li{margin:.55em 0;font:.86rem/1.35 Georgia,serif;color:var(--muted)}
  article.post>.toc a{color:var(--muted)}
  article.post>.toc a:hover{color:var(--honey)}
}

/* Плашка авторства TAP */
.mt-notice{font:.8rem/1.5 -apple-system,sans-serif;color:var(--muted);background:color-mix(in srgb,var(--honey) 8%,transparent);border-left:3px solid var(--honey);padding:8px 14px;margin:0 0 24px;border-radius:0 4px 4px 0}
.mt-notice a{color:var(--h3)}

.tap-footer{margin-top:48px;padding-top:20px;border-top:1px solid var(--rule)}
.tap-footer small{display:block;font:.8rem/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--muted)}
.tap-footer a{color:var(--h3)}

/* Виджет шэра, если есть */
.share-widget{margin-top:24px}

/* ================= ГЛАВНАЯ: модульная сетка (3a) ================= */
.intro{text-align:center;max-width:600px;margin:10px auto 30px}
.intro h1{font-size:1.9em}
.posts>h2{
  font:600 .74rem/1 -apple-system,sans-serif;letter-spacing:.16em;text-transform:uppercase;
  color:var(--honey);margin:8px 0 18px;
}
.post-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);
}
.post-card{
  background:var(--paper);margin:0;border:none;border-radius:0;
  padding:22px 22px 24px;display:flex;flex-direction:column;
  width:100%;justify-self:stretch;
}
.post-card .cover{aspect-ratio:3/2;object-fit:cover;margin-bottom:16px;border:1px solid var(--rule)}
.post-card .placeholder{
  aspect-ratio:3/2;margin-bottom:16px;border:1px solid var(--rule);
  background:repeating-linear-gradient(135deg,var(--stripe) 0 7px,var(--paper) 7px 14px);
}
.post-card .date{font:600 .62rem/1 -apple-system,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--honey);margin-bottom:9px}
.post-card h3{margin:0 0 8px;font:400 1.15rem/1.22 Georgia,serif}
.post-card h3 a{color:var(--ink)}
.post-card h3 a:hover{color:var(--honey)}
.post-card>p{margin:0 0 16px;font:.9rem/1.5 Georgia,serif;color:var(--dek)}
.post-card .tags{margin-top:auto}
@media(max-width:860px){.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.post-grid{grid-template-columns:minmax(0,1fr)}}

/* ================= ТЕГИ ================= */
.tags{display:flex;flex-wrap:wrap;gap:12px}
.tags .tag,a.tag{
  font:600 .68rem/1 -apple-system,sans-serif;letter-spacing:.06em;text-transform:uppercase;
  color:var(--h3);background:none;padding:0;border-radius:0;
}
.tags .tag:hover{color:var(--honey)}

/* Copy to LLM — иконка-триггер + выпадающее меню под заголовком поста */
.copy-llm{position:relative;display:inline-block;margin:16px 0 4px}
.copy-llm-trigger{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;padding:0;margin:0;
  border:none;background:none;
  color:var(--muted);cursor:pointer;transition:color .15s;
}
.copy-llm-trigger:hover,.copy-llm.open .copy-llm-trigger{color:var(--honey)}
.copy-llm-menu{
  position:absolute;top:calc(100% + 4px);left:0;z-index:20;
  min-width:180px;padding:4px;
  background:var(--abg);border:1px solid var(--line);border-radius:9px;
  box-shadow:0 6px 20px rgba(32,24,16,.12);
  display:none;
}
.copy-llm.open .copy-llm-menu{display:block}
.copy-llm-item{
  display:block;width:100%;text-align:left;
  padding:7px 10px;margin:0;border:none;border-radius:6px;background:none;
  font:600 .68rem/1.2 -apple-system,sans-serif;letter-spacing:.04em;text-transform:uppercase;
  color:var(--h3);cursor:pointer;transition:color .15s,background .15s;
}
.copy-llm-item:hover{background:var(--qbg);color:var(--honey)}
.copy-llm-item.done{color:var(--honey)}
/* tags.html - все теги */
.tags-list{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;column-gap:24px;row-gap:16px}
.tags-list li{display:flex;align-items:baseline;gap:5px}
.tags-list .tag{font:400 1.15rem/1 Georgia,serif;text-transform:none;letter-spacing:0;color:var(--ink)}
.tags-list .tag:hover{color:var(--honey)}
.tags-list .muted{font:600 .7rem/1 -apple-system,sans-serif;color:var(--muted);vertical-align:super}
/* tag.html - записи одного тега */
ul.posts{list-style:none;padding:0;margin:22px 0 0}
ul.posts li{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule)}
ul.posts li .date{flex:0 0 96px;font:.75rem/1.4 -apple-system,sans-serif;color:var(--muted)}
ul.posts li a{font:400 1.05rem/1.3 Georgia,serif;color:var(--ink)}
ul.posts li a:hover{color:var(--honey)}

/* ================= ПАГИНАЦИЯ ================= */
.pagination{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:center;margin:44px 0 0}
.pagination a,.pagination .current{font:600 .8rem/1 -apple-system,sans-serif;letter-spacing:.03em}
.pagination a{color:var(--h3)}
.pagination a:hover{color:var(--honey)}
.pagination .current{color:var(--ink);border-bottom:2px solid var(--honey);padding-bottom:2px}

/* ================= ФУТЕР ================= */
.site-footer{max-width:820px;margin:60px auto 0;padding-top:20px;border-top:1px solid var(--rule);
  font:.8rem/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--muted)}
.site-footer p{margin:.2em 0}
.site-footer a{color:var(--h3)}
/* На странице поста tap-footer уже даёт разделитель - убираем вторую линию над подвалом */
.content:has(article.post) > .site-footer{border-top:none;padding-top:0;margin-top:40px}

/* ================= 404 ================= */
body.not-found{display:flex;min-height:100vh;align-items:center;justify-content:center;text-align:center}
.not-found .nf-mark{width:66px;height:66px;margin:0 auto 24px;opacity:.72}
.not-found .kicker{margin-bottom:6px}
.not-found h1{font-size:1.7em;color:var(--ink);margin:.2em 0 .3em}
.not-found p{color:var(--dek);margin:.3em 0}

/* ================= ПОДКАСТ ================= */
body.podcast .content,body.podcast main{max-width:720px;margin-inline:auto;padding:26px 22px 90px}
.podcast-cover{text-align:center;margin-bottom:20px}
.podcast-cover .cover{width:180px;height:180px;object-fit:cover;border-radius:14px;margin:0 auto 18px;border:1px solid var(--rule)}
.podcast-cover .tagline{color:var(--dek);font-style:italic}
.episodes{margin-top:20px}
.episode{padding:22px 0;border-top:1px solid var(--rule)}
.episode h2{margin:0 0 4px;font-size:1.2em}
.episode .meta{font:.75rem/1 -apple-system,sans-serif;color:var(--muted);letter-spacing:.04em;margin-bottom:10px}
.episode .desc{color:var(--dek);font-size:.95em}
.episode audio{width:100%;margin-top:12px}
.sig{font-family:ui-monospace,Menlo,monospace;font-size:.8em;opacity:.55;margin:.7em 0 0;white-space:pre-wrap;word-break:break-word}
