/* RedAGE · Портал в прошлое — общие стили всех страниц */
:root{
  --bg:#0a0910; --bg2:#0f0d18; --panel:#131020;
  --ink:#f2edf8; --muted:#9d94b3; --faint:#7a7196; --ghost:#3a3450;
  --red:#ff3d5c; --coral:#ff6b4a; --magenta:#e6356e; --violet:#9d5cf0;
  --mint:#3ddc97; --gold:#e8c37a; --gold2:#ffdf9e; --silver:#cfd3e8;
  --line:rgba(232,195,122,.18); --hairline:rgba(255,255,255,.07);
  --shadow:0 40px 120px -30px rgba(0,0,0,.9);
  --display:'Unbounded',system-ui,sans-serif;
  --body:'Golos Text',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--body);line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
img,svg,canvas,video{max-width:100%;height:auto}
::selection{background:rgba(255,61,92,.35)}

/* ============ atmosphere ============ */
.sky{position:fixed;inset:0;z-index:-3;background:
  radial-gradient(90% 60% at 50% -8%, rgba(255,61,92,.15), transparent 55%),
  radial-gradient(70% 50% at 88% 10%, rgba(157,92,240,.14), transparent 60%),
  radial-gradient(60% 45% at 8% 18%, rgba(230,53,110,.09), transparent 60%),
  linear-gradient(180deg,#120d1f 0%,var(--bg2) 45%,var(--bg) 100%)}
.stars{position:fixed;inset:0;z-index:-2;opacity:.5;background-image:
  radial-gradient(1px 1px at 12% 22%, rgba(255,255,255,.5), transparent 100%),
  radial-gradient(1px 1px at 67% 11%, rgba(255,255,255,.35), transparent 100%),
  radial-gradient(1.5px 1.5px at 84% 31%, rgba(255,213,138,.4), transparent 100%),
  radial-gradient(1px 1px at 38% 7%, rgba(255,255,255,.3), transparent 100%),
  radial-gradient(1px 1px at 91% 64%, rgba(255,255,255,.22), transparent 100%),
  radial-gradient(1.5px 1.5px at 23% 48%, rgba(61,220,151,.3), transparent 100%)}
.grid{position:fixed;bottom:0;left:0;right:0;height:36vh;z-index:-2;perspective:340px;opacity:.30}
.grid::before{content:"";position:absolute;inset:0;transform:rotateX(72deg);transform-origin:bottom;
  background-image:linear-gradient(rgba(255,61,92,.30) 1px,transparent 1px),linear-gradient(90deg,rgba(255,61,92,.22) 1px,transparent 1px);
  background-size:46px 46px;mask-image:linear-gradient(180deg,transparent,#000 65%)}
.grain{position:fixed;inset:0;z-index:44;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.vignette{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%, transparent 55%, rgba(0,0,0,.5) 100%)}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}

/* ============ nav ============ */
.topbar{position:sticky;top:0;z-index:30;backdrop-filter:blur(14px);background:rgba(10,9,16,.78);border-bottom:1px solid var(--hairline)}
.topbar .in{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1180px;margin:0 auto;padding:14px 28px}
.brand{font-family:var(--display);font-weight:900;letter-spacing:.16em;font-size:14px;cursor:pointer;white-space:nowrap;color:var(--ink);text-decoration:none}
.brand b{color:var(--red)} .brand em{font-style:normal;color:var(--gold);font-weight:400;font-size:10.5px;letter-spacing:.3em;margin-left:10px}
.halls-nav{display:flex;gap:2px;align-items:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em}
.halls-nav a{color:var(--faint);text-decoration:none;padding:6px 10px;border-radius:7px;transition:.2s;white-space:nowrap}
.halls-nav a b{color:var(--gold);font-weight:500;margin-right:4px}
.halls-nav a:hover{color:var(--ink);background:rgba(255,255,255,.05)}
.halls-nav a.here{color:var(--ink);background:rgba(255,61,92,.12)}
.nav-search{position:relative;margin-left:10px}
.nav-search input{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:9px;
  color:var(--ink);font-family:var(--body);font-size:12.5px;padding:7px 12px;width:180px;outline:none;transition:.2s}
.nav-search input:focus{border-color:rgba(255,61,92,.5);width:230px}
.nav-search .results{top:calc(100% + 8px);max-height:340px}

/* ============ tooltip ============ */
[data-tip]{cursor:help;border-bottom:1px dotted rgba(232,195,122,.45)}
.info-i{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;
  border:1px solid rgba(232,195,122,.5);color:var(--gold);font-family:var(--mono);font-size:9px;
  margin-left:6px;vertical-align:1px;cursor:help}
#tip{position:fixed;z-index:60;max-width:340px;background:linear-gradient(180deg,#1e1734,#141021);
  border:1px solid var(--line);border-radius:12px;padding:13px 16px;font-family:var(--body);
  font-size:12.5px;line-height:1.65;color:var(--muted);box-shadow:var(--shadow);
  opacity:0;pointer-events:none;transition:opacity .18s;white-space:normal}
#tip.show{opacity:1}
#tip b{color:var(--gold);font-weight:600;display:block;margin-bottom:4px;font-size:12px;
  font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase}

/* ============ hero (главная) ============ */
.hero{padding:8vh 0 4vh;text-align:center}
.kicker{font-family:var(--mono);font-size:11.5px;letter-spacing:.4em;color:var(--gold);text-transform:uppercase;margin-bottom:24px}
.kicker .w1{color:var(--violet)} .kicker .w2{color:var(--silver)} .kicker .w3{color:var(--red)} .kicker .w4{color:var(--mint)}
.hero h1{font-family:var(--display);font-weight:900;line-height:.92;font-size:clamp(38px,7.2vw,98px);letter-spacing:-.015em}
.hero h1 .l1{display:block;background:linear-gradient(180deg,#fff,#e9d8ff 70%,#b7a0e0);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero h1 .l2{display:block;background:linear-gradient(180deg,#ffd6c2 0%,var(--red) 90%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 80px rgba(255,61,92,.25)}
.hero p.lead{margin:28px auto 0;max-width:660px;font-size:clamp(15px,2vw,18.5px);color:var(--muted)}
.hero p.lead em{color:var(--ink);font-style:normal;font-weight:600}
.searchbox{position:relative;margin:40px auto 0;max-width:640px}
.search{display:flex;gap:10px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.13);border-radius:16px;padding:8px;backdrop-filter:blur(12px);box-shadow:0 24px 70px -24px rgba(0,0,0,.8);transition:border-color .25s}
.searchbox:focus-within .search{border-color:rgba(255,61,92,.55)}
.search input{flex:1;background:transparent;border:0;outline:0;color:var(--ink);font-family:var(--body);font-size:16px;padding:13px 16px;min-width:0}
.search input::placeholder{color:var(--faint)}
.search button{font-family:var(--display);font-weight:600;font-size:13.5px;letter-spacing:.04em;border:0;border-radius:11px;padding:13px 26px;cursor:pointer;color:#1b0509;background:linear-gradient(135deg,var(--red),#ff7d92);box-shadow:0 10px 30px -8px rgba(255,61,92,.65);transition:transform .15s,box-shadow .3s;white-space:nowrap}
.search button:hover{transform:translateY(-2px);box-shadow:0 16px 40px -8px rgba(255,61,92,.8)}
.under-search{display:flex;justify-content:space-between;gap:14px;margin-top:12px;font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.05em;flex-wrap:wrap}
.under-search a{color:var(--mint);cursor:pointer;text-decoration:none;border-bottom:1px dashed rgba(61,220,151,.4)}
.under-search a:hover{border-bottom-style:solid}
.results{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:31;background:linear-gradient(180deg,#191330,#110d20);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);max-height:400px;overflow-y:auto;display:none;text-align:left}
.results.open{display:block}
.results::-webkit-scrollbar{width:8px}
.results::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:4px}
.res-head{font-family:var(--mono);font-size:10.5px;color:var(--faint);letter-spacing:.16em;text-transform:uppercase;padding:12px 18px 8px;border-bottom:1px solid var(--hairline)}
.res-item{display:flex;align-items:center;gap:13px;padding:11px 18px;cursor:pointer;transition:background .15s}
.res-item:hover{background:rgba(255,61,92,.08)}
.res-item .ava{width:36px;height:36px;flex:none;border-radius:10px;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:13px;color:#fff;background:conic-gradient(from 200deg,var(--red),var(--magenta),var(--violet),var(--red))}
.res-item .nm{font-weight:600;font-size:14.5px}
.res-item .meta{font-family:var(--mono);font-size:11px;color:var(--faint);margin-top:2px}
.res-item .meta b{font-weight:500}
.res-item .lvl{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--gold);white-space:nowrap}
.res-empty{padding:22px 18px;font-family:var(--mono);font-size:12.5px;color:var(--muted);line-height:1.7}

/* counters + ticker + тизеры */
.counters{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 44px;margin:48px auto 0}
.counter{text-align:center;min-width:120px}
.counter .num{font-family:var(--display);font-weight:800;font-size:clamp(22px,3.2vw,36px);letter-spacing:-.01em;
  display:inline-block;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.counter .num.mint{color:var(--mint)} .counter .num.gold{color:var(--gold)}
.counter .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase;margin-top:6px}
.ticker{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);background:rgba(255,255,255,.02);overflow:hidden;margin-top:7vh;position:relative}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none}
.ticker::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.ticker::after{right:0;background:linear-gradient(-90deg,var(--bg),transparent)}
.tick-in{display:flex;width:max-content;animation:tick 75s linear infinite}
.ticker:hover .tick-in{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
.tk{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap;cursor:pointer}
.tk:hover{color:var(--ink)} .tk b{color:var(--gold);font-weight:500} .tk .dot{color:var(--red)}
.teasers{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:7vh 0 4vh}
.teaser{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--hairline);border-radius:18px;padding:26px 26px 24px;
  background:linear-gradient(160deg,rgba(255,255,255,.03),transparent);transition:.2s;position:relative;overflow:hidden}
.teaser:hover{border-color:rgba(232,195,122,.45);transform:translateY(-4px);box-shadow:0 24px 60px -24px rgba(0,0,0,.8)}
.teaser .tn{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase}
.teaser h3{font-family:var(--display);font-weight:800;font-size:19px;margin:10px 0 8px}
.teaser p{font-size:12.5px;color:var(--muted);line-height:1.6}
.teaser .go{font-family:var(--mono);font-size:11px;color:var(--mint);margin-top:14px}

/* ============ страницы-залы ============ */
.hall{padding:6vh 0 3vh}
.hall-head{display:flex;align-items:baseline;gap:22px;margin-bottom:8px}
.hall-num{font-family:var(--display);font-weight:300;font-size:clamp(36px,4.6vw,58px);color:transparent;-webkit-text-stroke:1px rgba(232,195,122,.5);line-height:1;flex:none}
.hall-title{font-family:var(--display);font-weight:800;font-size:clamp(21px,3.2vw,38px);letter-spacing:-.01em}
.hall-sub{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:.12em;text-transform:uppercase;margin:6px 0 36px;padding-left:2px;line-height:2}
.hall-sub b{color:var(--mint);font-weight:500}

/* ============ scope switcher ============ */
.scoper{position:sticky;top:57px;z-index:25;margin:0 0 30px;display:flex;gap:8px;flex-wrap:wrap;
  background:rgba(10,9,16,.85);backdrop-filter:blur(12px);padding:10px 12px;border:1px solid var(--hairline);border-radius:14px}
.scope{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;padding:9px 16px;border-radius:9px;cursor:pointer;
  color:var(--muted);border:1px solid rgba(255,255,255,.1);background:transparent;transition:.2s;text-transform:uppercase}
.scope small{display:block;font-size:8.5px;color:var(--faint);letter-spacing:.12em;margin-top:2px;text-transform:none}
.scope:hover{color:var(--ink);border-color:rgba(255,255,255,.3)}
.scope.active{color:#0d0812;font-weight:600;border-color:transparent}
.scope.active small{color:rgba(0,0,0,.55)}
.scope.active[data-s="all"]{background:linear-gradient(135deg,var(--gold),var(--gold2))}
.scope.active[data-s="server1"]{background:linear-gradient(135deg,var(--violet),#c9a2ff)}
.scope.active[data-s="server2"]{background:linear-gradient(135deg,var(--silver),#fff)}
.scope.active[data-s="server3"]{background:linear-gradient(135deg,var(--red),#ff8ba0)}
.scope.active[data-s="main"]{background:linear-gradient(135deg,var(--mint),#8effc9)}

/* ============ dossier (person) ============ */
.dossier{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px;perspective:1600px}
.pane{border-radius:20px;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;position:relative;
  background:repeating-linear-gradient(115deg,rgba(232,195,122,.04) 0 2px,transparent 2px 8px),
    radial-gradient(120% 140% at 0% 0%, rgba(123,52,201,.20), transparent 55%),
    linear-gradient(160deg,#1b1430,#110d20 60%,#0d0a17)}
.pane.flash{animation:flash .55s ease}
@keyframes flash{0%{opacity:.3;transform:translateY(10px)}100%{opacity:1;transform:none}}
#ppane{transform-style:preserve-3d;transition:transform .1s ease-out}
#ppane::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(80% 60% at var(--mx,70%) var(--my,10%),rgba(255,255,255,.09),transparent 55%)}
.pp-top{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 26px 16px;border-bottom:1px dashed var(--line)}
.pp-top .doc{font-family:var(--mono);font-size:10.5px;letter-spacing:.26em;color:var(--gold);text-transform:uppercase}
.pp-top .doc small{display:block;color:var(--faint);letter-spacing:.16em;margin-top:6px;font-size:9.5px}
.stamp{font-family:var(--display);font-weight:800;font-size:11.5px;letter-spacing:.08em;border:1.5px solid;border-radius:9px;padding:7px 11px;text-align:center;transform:rotate(5deg);line-height:1.3;flex:none}
.stamp small{display:block;color:var(--faint);font-size:8.5px;letter-spacing:.2em;font-weight:400;margin-top:2px}
.pp-id{display:flex;gap:20px;align-items:center;padding:24px 26px 6px}
.avatar{width:88px;height:88px;flex:none;border-radius:16px;position:relative;display:grid;place-items:center;background:conic-gradient(from 200deg,var(--red),var(--magenta),var(--violet),var(--red));box-shadow:0 12px 30px -8px rgba(230,53,110,.6)}
.avatar span{font-family:var(--display);font-weight:900;font-size:30px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.avatar .staff{position:absolute;bottom:-8px;right:-8px;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;background:var(--gold);color:#160a06;font-weight:600;padding:3px 7px;border-radius:6px}
.pp-name h1,.pp-name h2{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(21px,2.8vw,32px);letter-spacing:-.01em;line-height:1.06;overflow-wrap:anywhere}
.pp-name .sub{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.05em;margin-top:9px;line-height:1.8}
.pp-name .sub b{color:var(--mint);font-weight:500}
.badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.badge{font-family:var(--mono);font-size:10px;letter-spacing:.1em;padding:4px 9px;border-radius:6px;border:1px solid;text-transform:uppercase}
.badge.vip{color:var(--gold);border-color:rgba(232,195,122,.5)}
.badge.multi{color:var(--mint);border-color:rgba(61,220,151,.45)}
.badge.seen{color:var(--muted);border-color:rgba(255,255,255,.18);text-transform:none}
.idline{font-size:13px;color:var(--muted);margin-top:10px}
.idline b{color:var(--ink);font-weight:600}
.hero-stat{padding:30px 26px 24px;border-top:1px dashed var(--line);margin-top:20px;text-align:left}
.hero-stat .hk{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--faint);text-transform:uppercase}
.hero-stat .hn{font-family:var(--display);font-weight:900;font-size:clamp(34px,4.6vw,54px);letter-spacing:-.02em;color:var(--mint);line-height:1;margin-top:10px}
.hero-stat .hn small{font-family:var(--body);font-weight:500;font-size:15px;color:var(--muted);letter-spacing:0;margin-left:10px}
.hero-stat .hs{font-size:14px;color:var(--ink);margin-top:12px}
.hero-stat .hs em{font-style:normal;color:var(--gold);font-weight:600}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line)}
.duo .cell{background:linear-gradient(180deg,rgba(19,14,32,.97),rgba(15,11,25,.97));padding:18px 26px}
.duo .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--faint);text-transform:uppercase}
.duo .v{font-family:var(--display);font-weight:700;font-size:22px;margin-top:8px;overflow-wrap:anywhere}
.duo .cell small{display:block;font-size:11.5px;color:var(--muted);margin-top:5px}
.v.mint{color:var(--mint)} .v.coral{color:var(--coral)} .v.gold{color:var(--gold)} .v.red{color:var(--red)} .v.violet{color:var(--violet)}
.statline{font-family:var(--mono);font-size:11.5px;color:var(--muted);padding:14px 26px;border-top:1px solid var(--line);letter-spacing:.04em;line-height:2}
.statline b{color:var(--ink);font-weight:500}
.journey{padding:20px 26px 22px;border-top:1px solid var(--line)}
.journey .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;color:var(--faint);text-transform:uppercase;margin-bottom:14px}
.track{display:flex;align-items:flex-start}
.stop{flex:1;text-align:center;position:relative}
.stop .d{width:13px;height:13px;border-radius:50%;margin:0 auto 8px;background:var(--ghost);box-shadow:0 0 0 4px rgba(255,255,255,.03);position:relative;z-index:1}
.stop.on .d{background:var(--mint);box-shadow:0 0 16px 2px rgba(61,220,151,.7)}
.stop.peak .d{background:var(--red);box-shadow:0 0 18px 3px rgba(255,61,92,.8)}
.stop .t{font-family:var(--display);font-weight:600;font-size:11.5px}
.stop.dim .t,.stop.dim .y{opacity:.38}
.stop .y{font-family:var(--mono);font-size:9.5px;color:var(--faint);margin-top:2px}
.stop .bar{position:absolute;top:5px;left:50%;width:100%;height:2px;background:linear-gradient(90deg,var(--mint),var(--ghost));z-index:0}
.stop:last-child .bar{display:none}
.stop.link{cursor:pointer;border-radius:10px;transition:background .15s}
.stop.link:hover{background:rgba(61,220,151,.07)}
.stop.link:hover .d{box-shadow:0 0 20px 4px rgba(61,220,151,.9)}
.stop .y.go{color:var(--mint)}
.stop .y.now{color:var(--gold)}
.ppr{display:flex;flex-direction:column}
.ppr-sec{padding:20px 24px;border-bottom:1px dashed var(--line)}
.ppr-sec:last-child{border-bottom:0}
.ppr-sec .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;color:var(--faint);text-transform:uppercase;display:flex;justify-content:space-between;margin-bottom:12px}
.ppr-sec .k b{color:var(--gold);font-weight:500;letter-spacing:.06em}
.garage{display:flex;flex-direction:column;gap:7px}
.car{display:flex;align-items:center;justify-content:space-between;gap:10px}
.car .mdl{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plate{font-family:var(--mono);font-weight:600;font-size:11px;letter-spacing:.14em;color:#dfe7ff;flex:none;background:linear-gradient(180deg,#232a45,#171c30);border:1px solid rgba(160,180,255,.35);border-radius:5px;padding:3px 8px}
.more-cars{font-family:var(--mono);font-size:10.5px;color:var(--faint);margin-top:4px}
.soc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.soc .num{font-family:var(--display);font-weight:700;font-size:18px}
.soc .num.mint{color:var(--mint)} .soc .num.gold{color:var(--gold)}
.soc .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:var(--faint);text-transform:uppercase;margin-top:3px}
.frlist{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.frk{width:100%;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase;margin-bottom:2px}
.frchip{font-size:12px;font-weight:600;padding:6px 11px;border-radius:16px;cursor:pointer;
  border:1px solid rgba(61,220,151,.28);background:rgba(61,220,151,.05);transition:.15s}
.frchip:hover{border-color:var(--mint);background:rgba(61,220,151,.14);transform:translateY(-1px)}
.frmore{font-family:var(--mono);font-size:10.5px;color:var(--faint);align-self:center}
.duel{cursor:pointer;border-bottom:1px dashed rgba(255,255,255,.25)}
.duel:hover{color:var(--gold)}
.rv{cursor:pointer;border-bottom:1px dashed rgba(255,255,255,.3)}
/* .pl — универсальный чип-ссылка на досье персонажа (nameLink в common.js).
   Кликабельный ник — золотой с подчёркиванием при наведении; .off — просто текст
   (персонаж не сопоставлен). Используется во всех залах и досье единообразно. */
.pl{color:var(--gold);cursor:pointer;border-bottom:1px dashed rgba(240,197,106,.35)}
.pl:hover{border-bottom-color:var(--gold)}
.pl.off{color:inherit;cursor:default;border-bottom:0}
.empty-note{font-family:var(--mono);font-size:11px;color:var(--faint);line-height:1.8}
.actions{display:flex;gap:10px;padding:18px 24px;margin-top:auto}
.btn{font-family:var(--display);font-weight:600;font-size:13px;border-radius:11px;padding:13px 18px;cursor:pointer;border:0;transition:transform .15s;flex:1}
.btn.primary{color:#04140d;background:linear-gradient(135deg,var(--mint),#8effc9);box-shadow:0 12px 30px -8px rgba(61,220,151,.55)}
.btn.ghost{background:rgba(255,255,255,.05);color:var(--ink);border:1px solid rgba(255,255,255,.14)}
.btn:hover{transform:translateY(-2px)}

/* ============ eras ============ */
.eras{position:relative;max-width:860px;margin:0 auto;padding-left:34px}
.eras::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;
  background:linear-gradient(180deg,var(--violet),var(--silver) 30%,var(--red) 55%,var(--gold) 75%,var(--mint))}
.era{position:relative;padding:0 0 44px 26px}
.era .node{position:absolute;left:-34px;top:4px;width:20px;height:20px;border-radius:50%;border:2px solid var(--gold);background:var(--bg);display:grid;place-items:center}
.era .node::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold)}
.era.v .node{border-color:var(--violet)} .era.v .node::after{background:var(--violet)}
.era.s .node{border-color:var(--silver)} .era.s .node::after{background:var(--silver)}
.era.r .node{border-color:var(--red)} .era.r .node::after{background:var(--red)}
.era.m .node{border-color:var(--mint)} .era.m .node::after{background:var(--mint)}
.era .when{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase}
.era h3{font-family:var(--display);font-weight:800;font-size:clamp(18px,2.6vw,26px);margin:8px 0 10px}
.era p{color:var(--muted);font-size:15px;max-width:640px}
.era p em{color:var(--ink);font-style:normal;font-weight:600}
.era .facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.fact{font-family:var(--mono);font-size:11px;color:var(--muted);border:1px solid var(--hairline);border-radius:8px;padding:6px 11px;background:rgba(255,255,255,.02)}
.fact b{color:var(--gold);font-weight:500}

/* ============ legends ============ */
.tabs{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:24px}
.tab{font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:var(--muted);cursor:pointer;border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:9px 16px;background:rgba(255,255,255,.02);transition:.2s}
.tab:hover{color:var(--ink);border-color:rgba(255,255,255,.25)}
.tab.active{color:#1b0509;background:linear-gradient(135deg,var(--red),#ff8ba0);border-color:transparent;font-weight:600}
.fame{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:10px}
.fame-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:14px;cursor:pointer;background:rgba(255,255,255,.025);border:1px solid var(--hairline);transition:.18s}
.fame-row:hover{background:rgba(255,61,92,.07);border-color:rgba(255,61,92,.3);transform:translateY(-2px)}
.fame-row .rank{font-family:var(--display);font-weight:800;font-size:14px;color:var(--faint);width:30px;text-align:center;flex:none}
.fame-row.r1 .rank{color:var(--gold);font-size:18px}
.fame-row.r2 .rank{color:#cfc8dd;font-size:16px}
.fame-row.r3 .rank{color:#c98d5a;font-size:15px}
.fame-row .who{min-width:0}
.fame-row .nm{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fame-row .meta{font-family:var(--mono);font-size:10.5px;color:var(--faint);margin-top:2px}
.fame-row .val{margin-left:auto;font-family:var(--display);font-weight:600;font-size:15px;color:var(--mint);white-space:nowrap}
.fame-row .val.gold{color:var(--gold)}
.fame-empty{font-family:var(--mono);font-size:12px;color:var(--faint);padding:20px 4px;line-height:1.8}

/* ============ город в цифрах ============ */
.sub-hall{margin:52px 0 0}
.sub-title{font-family:var(--display);font-weight:700;font-size:clamp(17px,2.2vw,24px);margin-bottom:6px}
.sub-cap{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.1em;text-transform:uppercase;margin-bottom:22px}
.bignums{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:13px;margin-bottom:34px}
.bignum{border:1px solid var(--hairline);border-radius:16px;padding:20px 22px;background:linear-gradient(160deg,rgba(255,255,255,.03),transparent)}
.bignum .n{font-family:var(--display);font-weight:800;font-size:clamp(21px,2.6vw,31px);letter-spacing:-.01em}
.bignum .n.gold{color:var(--gold)} .bignum .n.mint{color:var(--mint)} .bignum .n.red{color:var(--red)} .bignum .n.violet{color:var(--violet)}
.bignum .d{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--faint);text-transform:uppercase;margin-top:8px;line-height:1.8}
.distr{display:flex;align-items:flex-end;gap:10px;height:210px;padding:0 4px}
.dbar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:100%}
.dbar .fill{width:100%;border-radius:8px 8px 3px 3px;min-height:3px;background:linear-gradient(180deg,var(--gold),var(--coral) 65%,var(--magenta));transform-origin:bottom;animation:grow .9s cubic-bezier(.2,.7,.2,1)}
@keyframes grow{from{transform:scaleY(0)}}
.dbar .bb{font-family:var(--mono);font-size:9.5px;color:var(--muted);text-align:center}
.dbar .cc{font-family:var(--mono);font-size:10px;color:var(--faint)}
.chart-cap{font-family:var(--mono);font-size:11px;color:var(--faint);margin-top:16px;letter-spacing:.06em;text-align:center}
.hbars{display:flex;flex-direction:column;gap:9px;max-width:820px}
.hbar{display:grid;grid-template-columns:150px 1fr 74px;align-items:center;gap:14px}
.hbar .lbl{font-family:var(--mono);font-size:11.5px;color:var(--muted);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbar .rail{height:22px;background:rgba(255,255,255,.03);border-radius:6px;overflow:hidden;border:1px solid var(--hairline)}
.hbar .fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--violet),var(--magenta),var(--red));transform-origin:left;animation:growx .9s cubic-bezier(.2,.7,.2,1)}
@keyframes growx{from{transform:scaleX(0)}}
.hbar .cnt{font-family:var(--mono);font-size:11.5px;color:var(--gold)}
.pets-cloud{display:flex;flex-wrap:wrap;gap:9px}
.petchip{font-weight:600;font-size:13px;padding:8px 14px;border-radius:20px;border:1px solid rgba(61,220,151,.3);background:rgba(61,220,151,.05)}
.petchip small{font-family:var(--mono);font-weight:400;color:var(--faint);margin-left:6px;font-size:10px}
.names-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.names-col{border:1px solid var(--hairline);border-radius:16px;padding:24px;background:rgba(255,255,255,.02)}
.names-col .h{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;margin-bottom:16px}
.nrow{display:flex;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1px dashed rgba(255,255,255,.05)}
.nrow:last-child{border-bottom:0}
.nrow .i{font-family:var(--mono);font-size:10px;color:var(--faint);width:20px;flex:none}
.nrow .n{font-family:var(--display);font-weight:600;font-size:15px}
.nrow .c{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--mint)}
.chrono{border:1px solid var(--hairline);border-radius:18px;padding:26px;background:rgba(255,255,255,.015)}
.chrono svg{width:100%;height:auto;display:block}

/* ============ документы/модалка ============ */
.enc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.enc-card{border:1px solid var(--hairline);border-radius:16px;padding:20px 22px;background:rgba(255,255,255,.02);cursor:pointer;transition:.2s}
.enc-card:hover{border-color:rgba(232,195,122,.4);background:rgba(232,195,122,.04);transform:translateY(-3px)}
.enc-card .t{font-family:var(--display);font-weight:700;font-size:15.5px}
.enc-card .lead{font-size:12.5px;color:var(--muted);margin-top:8px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.enc-card .src{font-family:var(--mono);font-size:9.5px;color:var(--faint);letter-spacing:.14em;margin-top:12px;text-transform:uppercase}
.modal{position:fixed;inset:0;z-index:50;display:none;align-items:flex-start;justify-content:center;padding:5vh 18px;background:rgba(5,4,10,.8);backdrop-filter:blur(8px);overflow-y:auto}
.modal.open{display:flex}
.modal-in{max-width:780px;width:100%;background:linear-gradient(170deg,#1a1430,#100c1d);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:36px 42px 44px;position:relative}
.modal-in .close{position:sticky;top:0;float:right;font-family:var(--mono);font-size:12px;color:var(--faint);cursor:pointer;border:1px solid var(--hairline);border-radius:8px;padding:6px 12px;background:var(--bg2)}
.modal-in .close:hover{color:var(--ink)}
.modal-in h2{font-family:var(--display);font-weight:800;font-size:clamp(20px,3vw,30px);margin-bottom:6px}
.modal-in .src{font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:.2em;text-transform:uppercase;margin-bottom:24px}
.article{color:var(--muted);font-size:14.5px;line-height:1.75}
.article h3,.article h4,.article h5{font-family:var(--display);color:var(--ink);margin:26px 0 10px;font-size:17px}
.article h4{font-size:15px} .article h5{font-size:13.5px;color:var(--gold)}
.article p{margin:10px 0} .article b{color:var(--ink)}
.article ul{margin:10px 0 10px 20px}
.article li{margin:5px 0}

footer{text-align:center;padding:70px 0 60px;color:var(--faint);font-family:var(--mono);font-size:11px;letter-spacing:.1em;line-height:2.2}
footer b{color:var(--muted)} footer .sig{margin-top:10px;color:var(--gold)}
footer a{color:var(--muted)}
.toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(30px);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 22px;font-family:var(--mono);font-size:13px;opacity:0;pointer-events:none;transition:.35s;box-shadow:var(--shadow);z-index:55;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast b{color:var(--mint)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

@media(max-width:900px){
  .dossier{grid-template-columns:1fr}
  .names-grid{grid-template-columns:1fr}
  .halls-nav a b{display:none}
  .nav-search input{width:120px}
  .scoper{top:50px}
}
/* ---- планшет/мобайл: компактная шапка со скроллящейся навигацией ---- */
@media(max-width:720px){
  .wrap{padding:0 18px}
  .topbar .in{padding:11px 14px;gap:10px}
  .brand{font-size:12.5px;letter-spacing:.12em}
  .brand em{display:none}
  /* навигация — горизонтальная лента: все разделы доступны свайпом, шапка не растёт вверх */
  .halls-nav{min-width:0;flex:1;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;gap:2px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);
            mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
  .halls-nav::-webkit-scrollbar{display:none}
  .halls-nav a{padding:6px 8px;font-size:11px}
  .nav-search{margin-left:4px}
  .nav-search input{width:104px}
  .nav-search input:focus{width:130px}
  .hero{padding:5vh 0 3vh}
  .hero h1{font-size:clamp(27px,7.6vw,98px);letter-spacing:-.02em}
  .hero h1 .l1,.hero h1 .l2{overflow-wrap:anywhere}
  .kicker{letter-spacing:.12em;font-size:9.5px;margin-bottom:16px;line-height:1.9}
  .fame{grid-template-columns:1fr}
  .counters{gap:16px 26px}
}
@media(max-width:620px){
  .pp-id{flex-direction:column;text-align:center}
  .badges{justify-content:center}
  .duo{grid-template-columns:1fr}
  .bignums{grid-template-columns:1fr}
  .hbar{grid-template-columns:84px 1fr 54px;gap:10px}
  .distr{gap:5px;height:170px}
  .modal-in{padding:24px 18px 30px}
  .hall-head{gap:14px}
  .nav-search{display:none}
}
@media(prefers-reduced-motion:reduce){
  .tick-in{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
}

/* ---------- кнопка «показать весь топ-100» ---------- */
.fame-more{display:block;width:100%;margin-top:14px;padding:12px;border-radius:12px;cursor:pointer;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);background:rgba(232,195,122,.06);border:1px dashed rgba(232,195,122,.35);transition:.18s}
.fame-more:hover{background:rgba(232,195,122,.12);border-color:var(--gold);color:var(--gold2)}

/* ---------- личный архив: переписка мессенджером ---------- */
.chat{display:flex;flex-direction:column;gap:2px}
.chat-list{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow-y:auto;padding-right:4px}
.dlg{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;cursor:pointer;
  background:rgba(255,255,255,.025);border:1px solid var(--hairline);transition:.15s}
.dlg:hover{background:rgba(61,220,151,.07);border-color:rgba(61,220,151,.3)}
.dlg-ava{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--display);font-weight:700;font-size:13px;color:var(--ink);
  background:linear-gradient(135deg,rgba(157,92,240,.5),rgba(61,220,151,.35))}
.dlg-main{min-width:0;flex:1}
.dlg-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dlg-prev{font-size:12px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.dlg-meta{flex:none;font-family:var(--mono);font-size:11px;color:var(--mint);text-align:right}
.dlg-meta small{display:block;color:var(--faint);font-size:9.5px;margin-top:2px}

.chat-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.chat-back{font-family:var(--mono);font-size:11px;color:var(--faint);cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid var(--hairline);border-radius:8px;padding:6px 11px;transition:.15s}
.chat-back:hover{color:var(--ink);border-color:rgba(255,255,255,.3)}
.chat-with{font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink)}
.chat-cnt{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--faint)}
.chat-search{width:100%;margin-bottom:12px;background:rgba(255,255,255,.05);border:1px solid var(--hairline);
  border-radius:10px;padding:10px 13px;color:var(--ink);font-family:var(--body);font-size:13.5px;outline:none}
.chat-search:focus{border-color:rgba(61,220,151,.4)}
.chat-body{display:flex;flex-direction:column;gap:7px;max-height:52vh;overflow-y:auto;padding-right:4px}
.day-sep{align-self:center;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--faint);background:rgba(255,255,255,.04);border-radius:20px;padding:3px 12px;margin:8px 0 2px}
.bubble{max-width:78%;padding:9px 13px;border-radius:15px;font-size:13.5px;line-height:1.5;position:relative}
.bubble.out{align-self:flex-end;background:rgba(61,220,151,.13);border:1px solid rgba(61,220,151,.28);border-bottom-right-radius:5px}
.bubble.in{align-self:flex-start;background:rgba(232,195,122,.09);border:1px solid rgba(232,195,122,.22);border-bottom-left-radius:5px}
.bubble .btxt{color:var(--ink);word-wrap:break-word;overflow-wrap:anywhere}
.bubble .btime{font-family:var(--mono);font-size:9px;color:var(--faint);margin-top:4px;text-align:right}

/* ---------- CTA телеграм-канала (вставляется common.js над футером) ---------- */
.tg-cta{margin:52px auto 0}
.tg-cta-in{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  border:1px solid var(--hairline);border-radius:16px;padding:20px 26px;
  background:linear-gradient(115deg,rgba(42,171,238,.10),rgba(255,255,255,.02) 60%)}
.tg-cta .tg-txt b{display:block;font-family:var(--display);font-size:15px;letter-spacing:.02em;color:var(--ink)}
.tg-cta .tg-txt span{color:var(--muted);font-size:13px}
.tg-cta .btn{flex:none}
