/*
Theme Name: Vplyv Atlas
Theme URI: https://example.com/vplyv
Author: OpenAI
Description: Інтерактивний атлас українських діячів, подій, організацій і творів.
Version: 23.1.0
Text Domain: vplyv
*/
:root{
  --bg:#0b0d10;--bg2:#11141a;--panel:#171b21;--panel2:#1d222a;--ink:#f3efe6;--muted:#9f9b94;
  --line:rgba(255,255,255,.095);--line2:rgba(255,255,255,.16);--gold:#e5b45b;--green:#6f9f7f;
  --blue:#7897bf;--violet:#927eb0;--red:#bd7063;--teal:#64a29d;--orange:#c98c5a;
  --shadow:0 28px 100px rgba(0,0,0,.38)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:
radial-gradient(circle at 12% 0%,rgba(229,180,91,.09),transparent 26%),
radial-gradient(circle at 95% 30%,rgba(120,151,191,.07),transparent 24%),var(--bg);
color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}button,input,select{font:inherit}
.container{width:min(1360px,calc(100% - 36px));margin:auto}
.site-header{position:sticky;top:0;z-index:100;background:rgba(11,13,16,.78);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}
.header-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{font-weight:900;letter-spacing:.15em;font-size:21px}.logo span{color:var(--gold)}
.nav{display:flex;gap:24px;color:#d7d3cb;font-size:13px;font-weight:750}.nav a:hover{color:#fff}
.header-cta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px rgba(229,180,91,.08)}

.hero{padding:82px 0 48px}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:56px;align-items:end}
.kicker{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:900}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif}
.hero h1,.page-title{font-weight:400;letter-spacing:-.05em;line-height:.94}
.hero h1{font-size:clamp(62px,8.8vw,126px);margin:14px 0 22px}
.hero h1 em{font-weight:400;color:var(--gold)}
.lead{font-size:19px;line-height:1.75;color:#c0bbb2;max-width:760px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 17px;border-radius:999px;border:1px solid var(--line2);background:transparent;color:#fff;font-weight:800;cursor:pointer;transition:.2s}
.btn:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.28)}.btn-primary{background:var(--gold);color:#111;border-color:var(--gold)}
.hero-aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.metric{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));border:1px solid var(--line);border-radius:22px;padding:22px;min-height:150px}
.metric strong{display:block;font:400 42px/1 Georgia,serif;margin-bottom:10px}.metric span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}
.metric.wide{grid-column:1/-1;min-height:auto}.metric.wide p{margin:8px 0 0;color:#bbb6ad;line-height:1.55}

.layer-strip{padding:8px 0 28px}.layer-tabs{display:flex;gap:8px;flex-wrap:wrap}
.layer-tab{border:1px solid var(--line2);background:#12161b;color:#c9c4bb;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:800;cursor:pointer}
.layer-tab.active,.layer-tab:hover{background:var(--gold);color:#111;border-color:var(--gold)}

.graph-shell{padding:12px}.graph-stage{position:relative;height:calc(100vh - 92px);min-height:760px;overflow:hidden;border-radius:30px;border:1px solid var(--line);background:
linear-gradient(rgba(255,255,255,.014) 1px,transparent 1px),
linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px),
radial-gradient(circle at 50% 45%,rgba(255,255,255,.025),transparent 42%),#0f1217;
background-size:42px 42px,42px 42px,auto,auto;box-shadow:var(--shadow)}
#network{position:absolute;inset:0}.graph-topline{position:absolute;left:22px;top:17px;z-index:15;display:flex;align-items:center;gap:8px;color:#cfcac2;font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:850}
.graph-toolbar{position:absolute;z-index:14;left:22px;top:52px;right:22px;display:flex;gap:9px;flex-wrap:wrap;pointer-events:none}.graph-toolbar>*{pointer-events:auto}
.graph-toolbar input,.graph-toolbar select,.toolbar-btn{height:45px;border:1px solid var(--line2);border-radius:13px;background:rgba(22,26,32,.92);color:#fff;padding:0 12px;backdrop-filter:blur(12px)}
.graph-toolbar input{min-width:250px}.graph-toolbar select{min-width:150px}.toolbar-btn{font-weight:850;cursor:pointer}.toolbar-btn:hover{background:var(--gold);color:#111;border-color:var(--gold)}
.graph-legend{position:absolute;left:22px;bottom:20px;z-index:12;background:rgba(22,26,32,.9);border:1px solid var(--line);border-radius:16px;padding:11px 13px;display:flex;gap:12px;flex-wrap:wrap;backdrop-filter:blur(12px)}
.legend-item{font-size:10px;color:#aaa59e;display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%}

.graph-drawer{position:absolute;right:16px;top:16px;bottom:16px;width:min(430px,calc(100% - 32px));background:rgba(18,21,26,.98);border:1px solid var(--line2);border-radius:24px;z-index:20;box-shadow:var(--shadow);transform:translateX(calc(100% + 50px));transition:.3s ease;overflow:auto}
.graph-drawer.open{transform:translateX(0)}.drawer-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line2);background:rgba(0,0,0,.4);color:#fff;cursor:pointer;z-index:4}
.drawer-media{height:230px;overflow:hidden;background:#0b0d10}.drawer-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.75)}
.drawer-body{padding:23px}.drawer-meta{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:900}.drawer-body h2{font:400 42px/1 Georgia,serif;margin:8px 0 11px}.drawer-body p{color:#b5b0a8;line-height:1.65}
.drawer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.drawer-link{min-height:40px;padding:0 13px;border-radius:999px;background:var(--gold);color:#111;border:0;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;cursor:pointer}.drawer-link.alt{background:transparent;color:#fff;border:1px solid var(--line2)}
.drawer-relations{margin-top:21px;border-top:1px solid var(--line)}.drawer-relation{display:block;padding:13px 0;border-bottom:1px solid var(--line)}.drawer-relation strong{font-size:13px}.drawer-relation small{display:block;color:var(--muted);margin-top:4px}

.section{padding:88px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}.section-head h2{font:400 56px/1 Georgia,serif;letter-spacing:-.04em;margin:5px 0 0}.section-head p{max-width:620px;color:var(--muted);line-height:1.7}
.path-box{position:relative;overflow:hidden;background:linear-gradient(135deg,#181c22,#0f1216);border:1px solid var(--line2);border-radius:28px;padding:32px}.path-box:after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;right:-130px;top:-150px;background:radial-gradient(circle,rgba(229,180,91,.14),transparent 68%)}
.path-form{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto 1fr auto;gap:10px;align-items:center}.path-form select,.path-form button{height:50px;border-radius:13px;padding:0 14px}.path-form select{border:1px solid var(--line2);background:#0e1115;color:#fff}.path-form button{border:0;background:var(--gold);color:#111;font-weight:900;cursor:pointer}.path-result{position:relative;z-index:2;margin-top:21px;display:none}.path-result.active{display:block}.path-node{display:inline-flex;padding:9px 13px;border-radius:999px;background:#242a32;border:1px solid var(--line);font-weight:800;margin:4px}.path-arrow{opacity:.5}

.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.person-card,.connection-card,.entity-card{overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.018));border:1px solid var(--line);border-radius:22px;transition:.22s}.person-card:hover,.connection-card:hover,.entity-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.2);box-shadow:var(--shadow)}
.person-card-media{aspect-ratio:4/3;background:#101318;overflow:hidden}.person-card-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(1.02);transition:.3s}.person-card:hover img{transform:scale(1.025);filter:saturate(.95)}
.person-card-body,.connection-card,.entity-card{padding:17px}.person-meta{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--gold);font-weight:900}.person-card h3,.connection-card h3,.entity-card h3{font:400 27px/1.05 Georgia,serif;margin:8px 0}.person-card p,.connection-card p,.entity-card p{color:var(--muted);line-height:1.55;font-size:14px}
.entity-badge{display:inline-flex;font-size:9px;padding:6px 8px;border-radius:999px;border:1px solid var(--line2);text-transform:uppercase;letter-spacing:.1em;color:#c5c0b7}

.single-hero{padding:60px 0 22px}.person-layout{display:grid;grid-template-columns:380px 1fr;gap:54px}.person-photo{background:#11151a;padding:10px;border:1px solid var(--line);border-radius:28px}.person-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:20px;filter:saturate(.78)}
.person-title .page-title{font-size:clamp(60px,7.5vw,104px);margin:10px 0 16px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.chip{font-size:10px;padding:8px 10px;border:1px solid var(--line2);border-radius:999px;color:#d5d0c8}.richtext{font-size:18px;line-height:1.8;color:#c3beb6}
.content-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:24px;margin-top:34px}.panel{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:24px;padding:24px}.panel h2{font:400 34px/1 Georgia,serif;margin:0 0 16px}
.relation{padding:15px 0;border-bottom:1px solid var(--line)}.relation:last-child{border-bottom:0}.relation-type{font-size:9px;text-transform:uppercase;letter-spacing:.11em;font-weight:900}.relation-high{color:var(--green)}.relation-medium{color:var(--gold)}.relation-low{color:var(--red)}
.source-list{padding-left:18px;color:var(--muted);line-height:1.7}.site-footer{padding:48px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.empty{padding:28px;text-align:center;color:var(--muted)}
@media(max-width:1120px){.hero-grid,.person-layout,.content-grid{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.container{width:min(100% - 24px,1360px)}.nav{display:none}.header-cta{display:none}.hero{padding-top:48px}.hero h1{font-size:58px}.hero-aside{grid-template-columns:1fr}.graph-shell{padding:6px}.graph-stage{height:780px;border-radius:22px}.graph-toolbar{left:10px;right:10px;top:48px}.graph-toolbar input{width:100%;min-width:0}.graph-toolbar select{flex:1;min-width:0}.graph-legend{left:10px;right:10px;bottom:10px}.path-form{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.section{padding:64px 0}.section-head{display:block}.section-head h2{font-size:43px}.person-title .page-title{font-size:55px}}


/* ===== V6 MAP UX ===== */
.map-intro{
  position:absolute;left:22px;bottom:78px;z-index:13;
  width:min(420px,calc(100% - 44px));
  padding:18px 20px;border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(17,20,26,.92),rgba(13,16,20,.88));
  border-radius:20px;backdrop-filter:blur(14px);
  transition:.25s ease
}
.map-intro.hidden{opacity:0;pointer-events:none;transform:translateY(10px)}
.map-intro h3{font:400 28px/1 Georgia,serif;margin:5px 0 8px}
.map-intro p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.map-intro .micro{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--gold);font-weight:900}

.map-modebar{
  position:absolute;right:22px;bottom:20px;z-index:13;
  display:flex;gap:7px;padding:7px;border-radius:16px;
  background:rgba(19,23,29,.9);border:1px solid var(--line);backdrop-filter:blur(12px)
}
.map-modebar button{
  border:0;background:transparent;color:#aaa59e;border-radius:11px;
  padding:8px 10px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer
}
.map-modebar button.active,.map-modebar button:hover{background:var(--gold);color:#111}

.cluster-badge{
  display:inline-flex;align-items:center;gap:7px;padding:7px 10px;
  border-radius:999px;border:1px solid var(--line2);
  background:rgba(255,255,255,.025);color:#d4d0c9;
  font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800
}
.cluster-dot{width:7px;height:7px;border-radius:50%}

.drawer-statgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:18px 0}
.drawer-stat{padding:12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.025)}
.drawer-stat strong{display:block;font:400 22px/1 Georgia,serif}
.drawer-stat span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.09em;margin-top:4px}

.network-hint{
  position:absolute;z-index:12;top:104px;left:22px;
  color:#77736d;font-size:10px;letter-spacing:.08em;text-transform:uppercase
}
.network-hint strong{color:#c0bbb2}

.path-explain{margin-top:14px;color:#b8b3aa;font-size:12px;line-height:1.6}
.path-explain strong{color:var(--gold)}

@media(max-width:760px){
 .map-intro{left:10px;bottom:92px;width:calc(100% - 20px)}
 .map-modebar{right:10px;bottom:10px}
 .network-hint{left:10px;top:160px}
}
