/*
Theme Name: Центр им. В.П. Кащенко
Theme URI: https://centr.ikp-rao.ru/
Author: Центр им. В.П. Кащенко
Description: Тема научно-образовательного центра. Каталоги персоналий, выставок и мониторинга СМИ редактируются в админке и через REST API. Макет не зависит от Beaver Builder.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: centr
*/

:root{
  --ink:#17110c;
  --ink-2:#2a2019;
  --paper:#faf6ee;
  --card:#fffdf9;
  --muted:#6d6053;
  --line:#e3d8c4;
  --line-strong:#cdbfa6;
  --accent:#c4521d;
  --accent-soft:#f4e4d3;
  --radius:10px;
  --shadow:0 1px 2px rgba(23,17,12,.04), 0 12px 32px -18px rgba(23,17,12,.28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.serif{font-family:"Spectral",Georgia,"PT Serif",serif}
.skip{position:absolute;left:16px;top:-40px;background:var(--ink);color:var(--paper);padding:8px 12px;z-index:80}
.skip:focus{top:12px}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#5c5044;font-weight:500}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:500;border-bottom:1px solid transparent;transition:border-color .2s,gap .2s}
.link-arrow:hover{border-color:var(--ink);gap:12px}

.header{position:sticky;top:0;z-index:50;background:rgba(250,246,238,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-in{display:flex;align-items:center;gap:22px;height:76px}
.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.brand-mark{width:44px;height:44px;border-radius:6px;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:"Spectral",serif;font-size:24px;line-height:1;padding-bottom:3px}
.brand-text{display:flex;flex-direction:column;line-height:1.2}
.brand-name{font-family:"Spectral",serif;font-size:17px;letter-spacing:.01em}
.brand-sub{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.nav{display:flex;align-items:center;gap:18px;margin-left:auto}
.nav > a,.nav-parent{font-size:14.5px;color:var(--ink-2);position:relative;padding:6px 0;white-space:nowrap;background:none;border:0;cursor:pointer}
.nav > a::after,.nav-parent::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav > a:hover::after,.nav-parent:hover::after,.nav-item:focus-within .nav-parent::after{transform:scaleX(1)}
.nav-item{position:relative}
.nav-item::after{content:"";position:absolute;left:0;right:0;top:100%;height:16px}
.nav-parent{display:inline-flex;align-items:center;gap:6px}
.nav-caret{width:11px;height:7px;display:block;color:var(--muted);flex:0 0 auto}
.nav-sub{display:none;position:absolute;top:calc(100% + 8px);left:0;z-index:2;min-width:240px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px;box-shadow:var(--shadow)}
.nav-item:hover .nav-sub,.nav-item:focus-within .nav-sub,.nav-item.is-open .nav-sub{display:grid}
.nav-sub a{padding:8px 10px;border-radius:4px;font-size:14.5px}
.nav-sub a:hover{background:var(--accent-soft)}
.header-tools{display:flex;align-items:center;gap:12px;margin-left:8px}
.icon-btn{width:40px;height:40px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;display:grid;place-items:center;cursor:pointer}
.icon-btn:hover{background:var(--card);border-color:var(--ink)}
.icon-btn svg{width:17px;height:17px;stroke:var(--ink);fill:none;stroke-width:1.6}
.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);padding:8px 14px;border-radius:999px;font-size:13px;color:var(--ink-2);white-space:nowrap}
.pill:hover{border-color:var(--accent);background:#fff}
.pill i{width:6px;height:6px;border-radius:50%;background:var(--accent);display:block}
.burger{display:none;width:42px;height:42px;border:1px solid var(--line-strong);border-radius:6px;background:none;cursor:pointer;margin-left:auto}
.burger span{display:block;width:18px;height:1.5px;background:var(--ink);margin:4px auto}

.hero{padding:72px 0 88px}
.hero-in{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}
.hero h1{font-family:"Spectral",serif;font-weight:400;font-size:clamp(38px,4.6vw,62px);line-height:1.06;letter-spacing:-.015em;margin:20px 0 24px}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero p.lead{font-size:18px;line-height:1.65;color:var(--ink-2);max-width:47ch;margin:0 0 34px}
.btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 24px;border-radius:6px;font-size:15px;font-weight:500;border:1px solid transparent;cursor:pointer}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:var(--accent)}
.btn-ghost{border-color:var(--line-strong);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--ink);background:var(--card)}
.hero-note{margin-top:26px;font-size:13.5px;color:var(--muted)}
.frame{position:relative;border:1px solid var(--line);background:var(--card);padding:12px;box-shadow:var(--shadow);border-radius:var(--radius)}
.frame img,.frame-fallback{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;border-radius:4px}
.frame-fallback{background:linear-gradient(160deg,#2a2019,#6d4a32 55%,#c4521d);display:flex;align-items:flex-end;padding:24px;color:var(--paper);font-family:"Spectral",serif;font-size:42px}
.anniv{position:absolute;right:26px;top:26px;z-index:3;background:rgba(23,17,12,.88);color:var(--paper);border-radius:999px;padding:8px 15px 8px 11px;display:flex;align-items:center;gap:7px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.anniv b{font-family:"Spectral",serif;font-weight:500;font-size:16px;letter-spacing:0;text-transform:none}
.frame-label{display:flex;align-items:baseline;gap:14px;padding:14px 4px 4px;border-top:1px solid var(--line);margin-top:12px}
.frame-label p{margin:0;font-size:13px;line-height:1.4;color:var(--muted)}
.frame-label .cap-year{font-family:"Spectral",serif;font-size:20px;color:var(--accent);flex:0 0 auto}

.band{background:var(--ink);color:var(--paper);padding:56px 0}
.band .eyebrow{color:#b9a992}
.search-form{margin-top:18px}
.search-form h2{font-family:"Spectral",serif;font-weight:400;font-size:clamp(24px,2.4vw,32px);margin:0 0 18px}
.search-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:stretch}
.search-line .btn{white-space:nowrap}
.field{display:flex;align-items:center;gap:12px;background:#241b14;border:1px solid #4a3a2c;border-radius:6px;padding:15px 18px}
.field:focus-within{border-color:var(--accent)}
.field svg{width:18px;height:18px;stroke:#b9a992;fill:none;stroke-width:1.6;flex:0 0 auto}
.field input{flex:1;background:none;border:0;outline:none;color:var(--paper);font-size:16px;width:100%}
.field input::placeholder{color:#9a8b78}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{font-size:13px;padding:7px 14px;border-radius:999px;border:1px solid #4a3a2c;color:#d8cdbd;background:transparent;cursor:pointer}
.chip:hover,.chip.is-on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.band .btn-ghost{border-color:#4a3a2c;color:#f3e8da}
.band .btn-ghost:hover{border-color:var(--paper);background:transparent}

section{scroll-margin-top:90px}
.sec{padding:88px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:44px}
.sec-head h2{font-family:"Spectral",serif;font-weight:400;font-size:clamp(28px,3.1vw,42px);line-height:1.12;letter-spacing:-.015em;margin:10px 0 0;max-width:22ch}
.sec-head p{margin:12px 0 0;color:var(--muted);max-width:46ch;font-size:16px}

.cat-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.tile{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:30px;display:flex;flex-direction:column;overflow:hidden;min-height:180px}
.tile:hover{box-shadow:var(--shadow);border-color:var(--line-strong)}
.tile h3{font-family:"Spectral",serif;font-weight:500;font-size:26px;margin:0 0 10px}
.tile p{margin:0;color:var(--muted);font-size:15px;max-width:42ch}
.tile .tile-link{margin-top:auto;padding-top:20px;font-size:14px;color:var(--accent)}
.tile--photo{grid-column:span 7;min-height:420px;padding:0}
.tile--photo .tile-body{padding:32px 32px 24px}
.tile--photo .strip{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:auto}
.tile--photo .strip img{width:100%;height:180px;object-fit:cover;object-position:center 30%;filter:grayscale(.15) contrast(1.03);transition:transform .5s ease}
.tile--photo:hover .strip img{transform:scale(1.03)}
.tile--tall{grid-column:span 5;background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tile--tall p{color:#c3b5a2}
.tile--tall .tile-link{color:#f0c9a8}
.tile--tall .tile-copy{position:relative;z-index:2;max-width:calc(100% - 48px)}
.tile-thumb{position:absolute;right:-46px;bottom:-52px;width:172px;height:auto;border-radius:6px;opacity:.75;transform:rotate(-4deg);z-index:0}
.tile--pair{grid-column:span 6}
.tile--soft{background:var(--accent-soft);border-color:#e6cfb4}
.tile--dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tile--dark p{color:#c3b5a2}
.tile--dark .tile-link{color:#f0c9a8}
.years{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.year{font-size:12.5px;padding:5px 11px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.year:hover{border-color:var(--accent);color:var(--accent)}
.tile--soft .year{border-color:#e6cfb4;color:var(--ink-2)}

.persons{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.alphabet{display:flex;flex-wrap:wrap;gap:6px;margin:26px 0 34px;max-width:820px}
.alpha{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;font-size:14px;color:var(--ink-2);background:transparent}
.alpha:hover{border-color:var(--ink);background:var(--paper)}
.alpha.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.alpha.is-empty{opacity:.35;pointer-events:none}
.person-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;border-top:1px solid var(--line)}
.person{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.person:hover{color:var(--accent);padding-left:6px}
.person .p-name{font-family:"Spectral",serif;font-size:19px}
.person .p-meta{font-size:12.5px;color:var(--muted);white-space:nowrap}

.memory{padding:72px 0;background:var(--ink);color:var(--paper)}
.memory-in{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.memory h2{font-family:"Spectral",serif;font-weight:400;font-size:clamp(26px,2.8vw,38px);margin:12px 0 14px}
.memory p{color:#c3b5a2;margin:0;max-width:46ch}
.memory .links{display:flex;gap:28px;flex-wrap:wrap;justify-content:flex-end}
.memory .links a{font-size:14.5px;border-bottom:1px solid #4a3a2c;padding-bottom:4px}
.memory .links a:hover{border-color:var(--accent);color:#f0c9a8}

.centenary{background:var(--accent-soft);border-top:1px solid #e6cfb4}
.centenary-in{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.centenary h2{font-family:"Spectral",serif;font-weight:400;font-size:clamp(28px,3.1vw,42px);line-height:1.12;margin:10px 0 0}
.centenary p{margin:14px 0 0;color:var(--ink-2);max-width:46ch}
.centenary .btn{margin-top:24px}
.centenary-video{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:var(--ink);box-shadow:var(--shadow)}
.centenary-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.news-item{display:grid;grid-template-columns:160px 1fr;gap:36px;padding:28px 0;border-top:1px solid var(--line)}
.news-item .date{font-size:13.5px;color:var(--muted)}
.news-item h3{font-family:"Spectral",serif;font-weight:500;font-size:23px;margin:0 0 8px;line-height:1.25}
.news-item p{margin:0;color:var(--muted);font-size:15.5px;max-width:66ch}

.footer{background:var(--ink);color:#d8cdbd;padding:64px 0 28px;border-top:1px solid #332720}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.footer .brand-mark{background:var(--paper);color:var(--ink)}
.footer .brand-name{color:var(--paper)}
.footer .brand-sub{color:#9a8b78}
.footer p{font-size:14px;color:#9a8b78;margin:16px 0 0;max-width:32ch}
.footer h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#9a8b78;margin:0 0 16px;font-weight:500}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer ul a{font-size:14.5px;color:#d8cdbd}
.footer ul a:hover{color:#f0c9a8}
.footer-bottom{margin-top:52px;padding-top:22px;border-top:1px solid #332720;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;color:#8a7c6a}

.page-main{padding:48px 0 88px}
.page-head{margin-bottom:32px;max-width:760px}
.page-head h1{font-family:"Spectral",serif;font-weight:400;font-size:clamp(34px,4vw,52px);line-height:1.08;margin:12px 0 0}
.page-head p{color:var(--muted);margin:14px 0 0}
.prose{max-width:760px}
.prose h2,.prose h3{font-family:"Spectral",serif;font-weight:500}
.prose a{border-bottom:1px solid var(--line-strong)}
.prose img{border-radius:6px;margin:16px 0}
.prose .gallery,.prose .wp-block-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;max-width:none}
.prose .gallery-item,.prose .wp-block-image{margin:0}
.prose .gallery img,.prose .wp-block-gallery img{width:100%;height:180px;object-fit:cover;margin:0}
.prose.page-wide{max-width:none}

.portrait-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.portrait{display:flex;flex-direction:column;gap:10px}
.portrait img,.portrait-fallback{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;background:var(--accent-soft)}
.portrait-fallback{display:grid;place-items:center;font-family:"Spectral",serif;font-size:42px;color:var(--accent)}
.portrait h2{font-family:"Spectral",serif;font-weight:500;font-size:22px;margin:0;line-height:1.2}
.portrait p{margin:0;color:var(--muted);font-size:14px}

.person-layout{display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:start}
.person-layout img,.person-portrait-fallback{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;background:var(--accent-soft)}
.person-portrait-fallback{display:grid;place-items:center;font-family:"Spectral",serif;font-size:64px;color:var(--accent)}
.person-years{color:var(--muted);margin:8px 0 18px}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 22px}
.tabs a{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:14px}
.tabs a:hover{border-color:var(--ink)}
.works{margin:0;padding-left:18px;display:grid;gap:8px}
.works li{padding-left:4px}

.exhibit{display:grid;grid-template-columns:.82fr 1.18fr;gap:48px;align-items:center;padding:32px 0;border-top:1px solid var(--line)}
.exhibit h2{font-family:"Spectral",serif;font-weight:500;font-size:32px;line-height:1.15;margin:0 0 8px}
.exhibit-caption{font-family:"Spectral",serif;color:var(--accent);margin:0 0 12px;font-size:20px;line-height:1.25}
.exhibit figure{margin:0}
.exhibit img{width:100%;height:auto;object-fit:contain;background:transparent;border-radius:0}
.exhibit-fallback{width:100%;aspect-ratio:4/3}
.exhibit .btn{margin-top:18px}

.year-nav{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 28px}
.mon-year{padding:28px 0;border-top:1px solid var(--line)}
.mon-year h2{font-family:"Spectral",serif;font-weight:400;font-size:36px;margin:0 0 16px}
.mon-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px 48px}
.mon-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mon-cols a{border-bottom:1px solid transparent}
.mon-cols a:hover{border-color:var(--accent);color:var(--accent)}

.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.card{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:22px;min-height:140px;display:flex;flex-direction:column}
.card h2,.card h3{font-family:"Spectral",serif;font-weight:500;font-size:24px;margin:0 0 8px}
.card p{margin:0;color:var(--muted);font-size:15px}
.card .tile-link{margin-top:auto;padding-top:16px;color:var(--accent);font-size:14px}
.subnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.subnav a{border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:14px;background:var(--card)}
.subnav a.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

.split{display:grid;grid-template-columns:260px 1fr;gap:36px;align-items:start}
.side-nav{display:grid;gap:6px;position:sticky;top:96px}
.side-nav a{padding:10px 12px;border-radius:6px;border:1px solid transparent}
.side-nav a:hover,.side-nav a.is-on{border-color:var(--line);background:var(--card)}

.result{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:20px 0;border-top:1px solid var(--line)}
.result img{width:96px;height:96px;object-fit:cover;border-radius:6px}
.result h2{font-family:"Spectral",serif;font-weight:500;font-size:24px;margin:0 0 6px}
.result p{margin:0;color:var(--muted)}
.result .type{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.empty{color:var(--muted)}

@media (max-width:1080px){
  .hero-in,.memory-in,.person-layout,.exhibit,.split,.footer-grid,.centenary-in{grid-template-columns:1fr}
  .hero p.lead{max-width:none}
  .frame img,.frame-fallback{aspect-ratio:16/10}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 20px 18px;gap:2px}
  .nav.is-open{display:flex}
  .nav-item::after{display:none}
  .nav-sub{position:static;display:grid;border:0;box-shadow:none;padding:0 0 8px 12px;min-width:0}
  .burger{display:block}
  .header-tools .pill{display:none}
  .cat-grid,.portrait-grid,.person-list,.card-grid,.mon-cols{grid-template-columns:1fr}
  .tile--photo,.tile--tall,.tile--pair{grid-column:span 1}
  .memory .links{justify-content:flex-start}
  .side-nav{position:static}
  .sec{padding:72px 0}
  .wrap{padding:0 20px}
  .hero{padding:44px 0 72px}
}
@media (max-width:640px){
  .brand-sub{display:none}
  .header-in{height:66px}
  .news-item,.result,.search-line{grid-template-columns:1fr}
  .tile--photo .strip img{height:120px}
  .tile-thumb{display:none}
  .sec-head{flex-direction:column;align-items:flex-start}
  .portrait-grid{grid-template-columns:repeat(2,1fr)}
}
.library .lib-head{padding:26px 0 8px}
.library .lib-head h1{font-family:"Spectral",serif;font-weight:400;font-size:clamp(32px,3.6vw,50px);line-height:1.08;letter-spacing:-.015em;margin:14px 0 16px}
.library .lead{margin:0;max-width:62ch;color:var(--ink-2);font-size:17.5px}
.head-tools{display:flex;gap:20px;align-items:center;margin-top:28px;flex-wrap:wrap}
.search-light{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line-strong);border-radius:6px;padding:14px 18px;flex:1;min-width:280px;max-width:560px}
.search-light:focus-within{border-color:var(--accent)}
.search-light svg{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:1.6;flex:0 0 auto}
.search-light input{flex:1;border:0;background:none;outline:none;font-size:16px;color:var(--ink)}
.search-light input::placeholder{color:#9c8e7d}
.library .hint{font-size:13px;color:var(--muted)}
.lib-tabs{display:flex;gap:28px;align-items:center;flex-wrap:wrap;padding:22px 0 0;border-bottom:1px solid var(--line)}
.lib-tab{font-size:15px;color:var(--ink-2);padding:0 0 14px;position:relative;white-space:nowrap}
.lib-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.lib-tab:hover::after,.lib-tab.is-active::after{transform:scaleX(1)}
.lib-tab.is-active{color:var(--ink);font-weight:500}
.lib-tabs .to-index{margin-left:auto;font-size:14px;color:var(--accent);padding-bottom:14px}
.lib{display:grid;grid-template-columns:264px 1fr;gap:56px;padding:36px 0 96px;align-items:start}
.filters{position:sticky;top:100px}
.f-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:20px}
.f-head b{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
.f-head a{font-size:12.5px;color:var(--muted);border-bottom:1px solid var(--line-strong)}
.f-head a:hover{color:var(--ink);border-color:var(--ink)}
.f-group{padding:18px 0;border-top:1px solid var(--line)}
.f-group h5{margin:0 0 12px;font-size:14px;font-weight:500}
.check{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--ink-2);padding:5px 0;cursor:pointer}
.check input{appearance:none;width:16px;height:16px;border:1px solid var(--line-strong);border-radius:3px;background:var(--card);position:relative;cursor:pointer;flex:0 0 auto;margin:0}
.check input:checked{background:var(--ink);border-color:var(--ink)}
.check input:checked::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid var(--paper);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.check.is-on{color:var(--ink);font-weight:500}
.years2{display:flex;align-items:center;gap:8px}
.years2 input{width:72px;border:1px solid var(--line-strong);border-radius:4px;background:var(--card);padding:8px 10px;font-size:13.5px;color:var(--ink);outline:none}
.years2 input:focus{border-color:var(--accent)}
.years2 span{color:var(--muted);font-size:13px}
.mini-alpha{display:flex;flex-wrap:wrap;gap:4px}
.mini-alpha a{width:24px;height:24px;display:grid;place-items:center;font-size:11.5px;border-radius:3px;color:var(--muted)}
.mini-alpha a:hover{background:var(--card);color:var(--ink);border:1px solid var(--line)}
.mini-alpha a.is-on{background:var(--ink);color:var(--paper)}
.filters .btn{margin-top:8px}
.index-card{margin-top:22px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.index-card b{display:block;font-family:"Spectral",serif;font-size:17px;font-weight:500;margin-bottom:6px}
.index-card p{margin:0 0 12px;font-size:13px;color:var(--muted);line-height:1.45}
.index-card a{font-size:13.5px;color:var(--accent)}
.res-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--line-strong)}
.res-head .count{font-size:14px;color:var(--muted)}
.res-head .sort{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted)}
.res-head select{border:1px solid var(--line-strong);background:var(--card);border-radius:4px;padding:7px 10px;font-size:13.5px;color:var(--ink)}
.pub{display:grid;grid-template-columns:132px 1fr;gap:26px;align-items:start;padding:22px 0;border-bottom:1px solid var(--line)}
.pub:hover h3{color:var(--accent)}
.pub h3{font-family:"Spectral",serif;font-weight:500;font-size:19.5px;line-height:1.3;margin:0 0 6px;letter-spacing:-.005em;max-width:44ch}
.pub .who{font-size:13.5px;color:var(--muted);margin-top:2px}
.pub-body{display:flex;flex-direction:column;min-width:0}
.pub .actions,.pub-single .actions{display:flex;gap:16px;font-size:13.5px;margin-top:12px;align-items:center}
.pub .actions a,.pub-single .actions a{color:var(--ink);border-bottom:1px solid var(--line-strong);padding-bottom:1px}
.pub .actions a:hover,.pub-single .actions a:hover{color:var(--accent);border-color:var(--accent)}
.pub .actions .pdf,.pub-single .actions .pdf{color:var(--muted)}
.cover{width:132px;aspect-ratio:3/4;position:relative;border-radius:2px;overflow:hidden;background:var(--cv,#e9dcc3);display:flex;flex-direction:column;justify-content:space-between;padding:12px 11px 11px 17px;box-shadow:0 14px 22px -18px rgba(23,17,12,.65), 0 1px 0 rgba(255,255,255,.5) inset;transition:transform .25s ease, box-shadow .25s ease}
.pub:hover .cover{transform:translateY(-3px)}
.cover::before{content:"";position:absolute;left:0;top:0;bottom:0;width:9px;background:linear-gradient(90deg, rgba(23,17,12,.24), rgba(23,17,12,.06) 60%, rgba(255,255,255,.18))}
.cover::after{content:"";position:absolute;inset:7px 7px 7px 15px;border:1px solid rgba(23,17,12,.16);pointer-events:none}
.cover .c-top,.cover .c-title,.cover .c-bottom{position:relative;z-index:2}
.cover .c-top{font-size:6.5px;letter-spacing:.15em;text-transform:uppercase;color:rgba(23,17,12,.5);line-height:1.4}
.cover .c-title{font-family:"Spectral",Georgia,serif;font-size:11.5px;line-height:1.3;color:#241b13;margin:6px 0;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.cover .c-bottom{font-size:7px;letter-spacing:.05em;color:rgba(23,17,12,.55);line-height:1.35}
.cv1{--cv:#e6d8bd}.cv2{--cv:#dccfb4}.cv3{--cv:#e3d6c6}.cv4{--cv:#d8cbb2}.cv5{--cv:#e9e0cd}
.cover.is-photo{padding:0}
.cover.is-photo img{width:100%;height:100%;object-fit:cover}
.cover.is-photo::before,.cover.is-photo::after{display:none}
.lib-pages{display:flex;gap:6px;margin-top:34px;align-items:center;flex-wrap:wrap}
.lib-pages a,.lib-pages span{min-width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;font-size:14px;color:var(--ink-2);padding:0 8px}
.lib-pages a:hover{border-color:var(--ink)}
.lib-pages .current{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pub-single{display:grid;grid-template-columns:160px 1fr;gap:40px;align-items:start;padding:12px 0 80px}
.pub-single .cover{width:160px}
.crumbs{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted);padding:26px 0 0}
.crumbs a:hover{color:var(--ink)}
.crumbs span{opacity:.5}
@media (max-width:1080px){
  .lib{grid-template-columns:1fr;gap:28px}
  .filters{position:static}
  .pub{grid-template-columns:108px 1fr}
  .cover,.pub-single .cover{width:108px}
  .cover .c-title{font-size:10px}
}
@media (max-width:640px){
  .pub{grid-template-columns:92px 1fr;gap:18px}
  .cover,.pub-single .cover{width:92px}
  .cover .c-title{font-size:9px;-webkit-line-clamp:4}
  .pub h3{font-size:17px}
  .pub .actions{margin-top:10px}
  .lib-tabs{gap:18px;overflow-x:auto;flex-wrap:nowrap}
  .lib-tabs .to-index{margin-left:0}
  .pub-single{grid-template-columns:92px 1fr;gap:20px}
  .library .lib-head h1{font-size:32px}
}
