:root{
  --bg:#f5f4f0;
  --surface:#ebe9e3;
  --line:#dedbd3;
  --text:#1c1c1a;
  --muted:#6a675f;
  --accent:#b8792a;
  --ok:#4f7d4a;
  --warn:#a8691c;
  --radius:10px;
  --lb-bg:#efede8;
  --v1:#b8792a;
  --v2:#4d7397;
  --v3:#5f8a4f;
  --card:#fbfaf7;
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{background:var(--bg);color:var(--text);font:400 16px/1.6 Montserrat,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
.wrap{max-width:1360px;margin:0 auto;padding:0 32px}

/* шапка */
.top{position:sticky;top:0;z-index:20;background:rgba(245,244,240,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:40px;height:68px}
.brand{font-weight:700;font-size:18px;letter-spacing:.01em;white-space:nowrap}
.brand span{font-weight:500;color:var(--muted);margin-left:10px;font-size:14px}
.nav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:500;color:var(--muted);white-space:nowrap;transition:color .2s,background .2s}
.nav a span{font-size:12px;color:var(--muted);opacity:.7}
.nav a:hover,.nav a.on{color:var(--text);background:var(--surface)}
.who{margin-left:auto;white-space:nowrap;font-size:13.5px;color:var(--muted);padding:8px 14px;border-radius:999px;border:1px solid var(--line);transition:border-color .2s}
.who b{color:var(--text);font-weight:600}
.who:hover{border-color:var(--muted)}

/* вступление */
.intro{padding:72px 0 40px;max-width:880px}
.intro h1{font-size:clamp(32px,5vw,56px);line-height:1.08;font-weight:700;letter-spacing:-.02em}
.lead{margin-top:18px;font-size:18px;color:var(--muted);max-width:60ch}
.howto{display:grid;grid-template-columns:132px 1fr;gap:24px;align-items:center;margin-top:40px;padding:22px 24px;background:var(--surface);border-radius:var(--radius)}
.howto p{font-size:14.5px;color:var(--muted)}
.howto b{color:var(--text);font-weight:600}
.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#cccccc;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);padding:6px;border-radius:6px;aspect-ratio:16/9}
.mini i{background:#b9b8b3;border-radius:2px}
.mini i:nth-child(-n+3){background:linear-gradient(#cccccc 0 24%,#8c8a84 24%)}
.mini i.h{background:#8c8a84}
.mini i.f{background:radial-gradient(circle at 50% 46%,#c9a68c 0 28%,#b9b8b3 29%)}

/* категории */
.cat{padding:56px 0 24px}
.cat-head{padding-bottom:20px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.cat-head h2{font-size:clamp(24px,3vw,34px);font-weight:700;letter-spacing:-.01em}
.cat-head p{color:var(--muted);font-size:15px;margin-top:4px}

/* персонаж */
.char{display:grid;grid-template-columns:minmax(260px,340px) 1fr;grid-template-rows:auto 1fr auto;grid-template-areas:"info media" "vote media" "talk talk";gap:0 40px;padding:36px 0;border-bottom:1px solid var(--line)}
.info{grid-area:info}.media{grid-area:media}
.char:last-of-type{border-bottom:0}
.info h3{font-size:22px;font-weight:600;line-height:1.25}
.meta{margin-top:6px;font-size:13.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.tag{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid currentColor}
.tag.ok{color:var(--ok)}
.tag.warn{color:var(--warn)}
.bio{margin-top:16px;font-size:15px;line-height:1.65}
.look{margin-top:12px;font-size:14px;color:var(--muted);line-height:1.6}
.media{min-width:0}
.stage{display:block;width:100%;aspect-ratio:16/9;background:#cccccc;border-radius:var(--radius);overflow:hidden;position:relative;cursor:zoom-in;box-shadow:0 1px 2px rgba(0,0,0,.06),0 8px 24px -12px rgba(0,0,0,.18)}
.stage img{width:100%;height:100%;object-fit:cover;transition:opacity .25s,transform .5s cubic-bezier(.2,.7,.2,1)}
.stage:hover img{transform:scale(1.012)}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.thumb{position:relative;border-radius:8px;overflow:hidden;outline:2px solid transparent;outline-offset:-2px;transition:outline-color .2s,opacity .2s;opacity:.7;background:#ccc}
.thumb img{aspect-ratio:16/9;object-fit:cover;width:100%}
.thumb span{position:absolute;left:8px;bottom:6px;font-size:11.5px;font-weight:600;color:#1a1a1a;background:rgba(255,255,255,.88);padding:1px 7px;border-radius:4px}
.thumb:hover{opacity:.9}
.thumb.on{opacity:1;outline-color:var(--accent)}

/* утверждённые: компактная сетка */
#main .char,#large .char{grid-template-columns:minmax(220px,300px) 1fr}

/* голоса */
.voices{margin-top:28px;padding:22px 24px;background:var(--surface);border-radius:var(--radius)}
.voices h4{font-size:14px;font-weight:600;color:var(--muted);margin-bottom:10px}
.voices ul{list-style:none;display:grid;gap:10px}
.voices li{display:grid;grid-template-columns:200px 200px 1fr;gap:16px;font-size:14px}
.voices li span{color:var(--muted)}

.foot{padding:56px 32px 72px;color:var(--muted);font-size:13px}

/* голосование: сводка */
.poll{margin-top:8px;padding:28px;background:var(--card);border:1px solid var(--line);border-radius:14px}
.poll-head h2{font-size:clamp(22px,2.6vw,28px);font-weight:700;letter-spacing:-.01em}
.poll-head p{color:var(--muted);font-size:14.5px;margin-top:2px}
.matrix-wrap{margin-top:16px;overflow:auto;max-height:560px;border:1px solid var(--line);border-radius:10px;background:#fff}
.matrix{width:100%;border-collapse:collapse;font-size:13.5px}
.matrix th{position:sticky;top:0;z-index:1;background:#fff;text-align:left;font-weight:600;font-size:12px;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.matrix th.me{color:var(--accent)}
.matrix td{padding:8px 12px;border-bottom:1px solid #efede7;vertical-align:middle}
.matrix tr:last-child td{border-bottom:0}
.matrix tbody tr{cursor:pointer;transition:background .15s}
.matrix tbody tr:hover{background:#f7f5f0}
.m-role{min-width:170px}
.m-role b{font-weight:600}
.m-role em{margin-left:8px;font-style:normal;font-size:11px;font-weight:600;color:var(--warn);border:1px solid currentColor;border-radius:999px;padding:1px 7px;white-space:nowrap}
.m-lead{white-space:nowrap}
.m-lead img{display:inline-block;vertical-align:middle;width:72px;aspect-ratio:16/9;object-fit:cover;border-radius:4px;background:#ccc;margin-right:10px}
.m-lead span{vertical-align:middle}
.m-none{color:var(--muted);font-size:12.5px}
.m-dist{min-width:150px}
.stack{display:flex;height:20px;border-radius:5px;overflow:hidden;gap:2px}
.stack.empty{background:#eeece6}
.v1{--vc:var(--v1)}.v2{--vc:var(--v2)}.v3{--vc:var(--v3)}
.stack i{display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:600;color:#fff;min-width:18px;background:var(--vc)}
.m-cell{text-align:center}
.matrix th.m-who{text-align:center}
.m-dash{display:inline-block;width:10px;height:2px;background:var(--line);vertical-align:middle}
.m-empty{text-align:center;color:var(--muted);padding:24px!important}
.vchip{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;font-size:12px;font-weight:600;color:var(--vc);background:color-mix(in srgb,var(--vc) 13%,transparent)}
.vchip.agree{color:#fff;background:var(--vc)}

.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:18px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{font-size:13px;font-weight:500;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);transition:all .15s}
.chips button:hover{color:var(--text);border-color:#c9c5bb}
.chips button.on{background:var(--text);border-color:var(--text);color:#fff}
.switch{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:500;cursor:pointer;user-select:none;position:relative}
.switch input{position:absolute;opacity:0;pointer-events:none}
.switch span{width:38px;height:22px;border-radius:999px;background:#d6d3cb;position:relative;transition:background .2s;flex:none}
.switch span::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .2s}
.switch input:checked+span{background:var(--accent)}
.switch input:checked+span::after{transform:translateX(16px)}
.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.f-count{font-size:13px;color:var(--muted)}

/* голосование: карточка */
.thumb em.tb{position:absolute;right:6px;top:6px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;font-style:normal;font-size:11.5px;font-weight:700;color:var(--text);background:rgba(255,255,255,.92)}
.thumb em.tb.lead{background:var(--accent);color:#fff}
.vote{grid-area:vote;margin-top:24px;align-self:start}
.vote-head{font-size:13.5px;font-weight:600;margin-bottom:8px;display:flex;flex-wrap:wrap;gap:4px 12px}
.vote-head span{font-weight:400;color:var(--muted)}
.bars{list-style:none;display:grid;gap:6px}
.bar{display:grid;grid-template-columns:1fr 24px auto;grid-template-areas:"l n p" "t t t" "s s s";align-items:center;gap:6px 12px;padding:8px 10px;border-radius:8px;background:var(--card);border:1px solid var(--line);transition:border-color .2s}
.bar.mine{border-color:var(--vc)}
.bar-label{grid-area:l;text-align:left;font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:6px}
.bar-label em{font-style:normal;font-size:10.5px;font-weight:700;color:#fff;background:var(--accent);padding:1px 6px;border-radius:999px}
.bar-track{grid-area:t;height:8px;border-radius:999px;background:#e6e3dc;overflow:hidden}
.bar-track i{display:block;height:100%;background:var(--vc);border-radius:999px;transition:width .4s cubic-bezier(.2,.7,.2,1)}
.bar-n{grid-area:n;font-size:13.5px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.bar-pick{grid-area:p;font-size:12.5px;font-weight:600;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;transition:all .15s;white-space:nowrap}
.bar-pick:hover{border-color:var(--vc);color:var(--vc)}
.bar.mine .bar-pick{background:var(--vc);border-color:var(--vc);color:#fff}
.bar-names{grid-area:s;font-size:12px;color:var(--muted)}
.bar-names:empty{display:none}

.talk{grid-area:talk;margin-top:20px}
.talk:empty{display:none}
.talk-head{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-bottom:8px}
.talk-head span{font-size:12px;color:var(--muted)}
.talk:not(.has) .talk-head{display:none}
.cmts{list-style:none;display:grid;gap:8px}
.cmt{padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:10px;max-width:880px}
.cmt-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}
.cmt-top time{color:var(--muted);font-size:12px}
.cmt-del{margin-left:auto;font-size:12px;color:var(--muted)}
.cmt-del:hover{color:#a33}
.cmt p{margin-top:6px;font-size:14.5px;line-height:1.55;overflow-wrap:anywhere}
.reacts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:8px}
.reacts button{font-size:12.5px;font-weight:500;padding:4px 11px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);transition:all .15s}
.reacts button:hover{color:var(--text);border-color:#c9c5bb}
.reacts button.on{background:var(--ok);border-color:var(--ok);color:#fff}
.reacts button.on.no{background:#9a5a3c;border-color:#9a5a3c}
.reacts span{font-size:12px;color:var(--muted)}
.cmt-open{margin-top:10px;font-size:13px;font-weight:600;color:var(--accent);padding:4px 0}
.cmt-open:hover{text-decoration:underline}
.cmt-form{margin-top:10px;max-width:880px;display:grid;gap:8px}
textarea,input,select{font:inherit;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%}
textarea{resize:vertical;min-height:84px;font-size:14.5px}
textarea:focus,input:focus,select:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:0;border-color:var(--accent)}
.cmt-row{display:flex;gap:8px;align-items:center}
.cmt-row select{width:auto;font-size:13.5px;padding:8px 10px;margin-right:auto}
.cmt-row button,.namebtns button{font-size:13.5px;font-weight:600;padding:9px 16px;border-radius:999px;color:var(--muted)}
button.primary{background:var(--text);color:#fff!important}
button.primary:disabled{opacity:.5}

/* имя */
.namebox{position:fixed;inset:0;z-index:60;background:rgba(28,28,26,.32);display:grid;place-items:center;padding:16px}
.namecard{width:min(420px,100%);background:#fff;border-radius:14px;padding:24px;box-shadow:0 20px 60px -20px rgba(0,0,0,.35);display:grid;gap:12px}
.namecard h3{font-size:19px;font-weight:700}
.namecard p{font-size:14px;color:var(--muted)}
.namebtns{display:flex;justify-content:flex-end;gap:8px}
.toast{position:fixed;left:50%;bottom:24px;translate:-50% 0;z-index:70;background:var(--text);color:#fff;font-size:14px;padding:10px 18px;border-radius:999px;box-shadow:0 8px 24px -8px rgba(0,0,0,.3)}

/* лайтбокс */
.lb{position:fixed;inset:0;z-index:50;background:var(--lb-bg)}
.lb-bar{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;gap:16px;padding:10px 16px;font-size:14px;background:rgba(239,237,232,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .25s}
.lb.zoom .lb-bar{opacity:.35}
.lb.zoom .lb-bar:hover{opacity:1}
#lb-title{font-weight:600}
#lb-count{color:var(--muted)}
#lb-close{margin-left:auto;padding:7px 16px;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);font-weight:500}
.lb-view{position:absolute;inset:0;overflow:hidden;cursor:zoom-in;touch-action:none;display:grid;place-items:center}
.lb-view.zoomed{cursor:grab}
.lb-view.drag{cursor:grabbing}
.lb-view img{max-width:100vw;max-height:100vh;max-height:100dvh;object-fit:contain;transform-origin:0 0;user-select:none;-webkit-user-drag:none;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.lb-view.drag img{transition:none}
.lb-nav{position:absolute;z-index:2;top:50%;translate:0 -50%;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 1px 4px rgba(0,0,0,.12);font-size:30px;line-height:1;display:grid;place-items:center}
.lb-nav.prev{left:16px}.lb-nav.next{right:16px}
.lb-nav[disabled]{opacity:.25;pointer-events:none}
.lb-hint{position:absolute;bottom:14px;left:50%;translate:-50% 0;transition:opacity .4s;font-size:12.5px;color:var(--muted);background:rgba(255,255,255,.85);padding:6px 12px;border-radius:999px;white-space:nowrap}

@media (max-width:900px){
  .wrap{padding:0 16px}
  .top-in{gap:16px;height:60px}
  .brand span{display:none}
  .intro{padding:44px 0 24px}
  .howto{grid-template-columns:1fr}
  .howto figure{max-width:160px}
  .char,#main .char,#large .char{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"info" "media" "vote" "talk";gap:18px 0;padding:28px 0}
  .vote,.talk{margin-top:0}
  .voices li{grid-template-columns:1fr;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--line)}
  .who{padding:6px 10px;font-size:12.5px}
  .poll{padding:18px 14px}
  .matrix-wrap{max-height:480px}
  .m-lead img{width:56px}
  .m-role{min-width:130px}
  .cmt-row{flex-wrap:wrap}
  .cmt-row select{width:100%;margin-right:0}
  .lb-hint{display:none}
  .lb-nav{width:44px;height:44px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.lb-hint.off{opacity:0;pointer-events:none}
