@font-face{font-family:Pretendard;src:url(PretendardVariable.woff2) format('woff2');font-weight:100 900;font-display:swap}
:root{
  --paper:#f3efec; --paper2:#ebe6e1; --card:#fbf9f7; --ink:#141311; --ink2:#4a4743; --mute:#857f78; --line:#ddd6cf; --line2:#cfc7bf;
  --acc:#d9541f; --accbg:#fbe4d8; --acc2:#8f3410; --ok:#1f6b4a; --okbg:#dcefe5; --nv:#55524d; --nvbg:#e6e1dc;
  --mm:#3d5a80; --tk:#c96a2b; --mx:#8c7a63; --unk:#b8b0a6; --cex:#141311; --fund:#9a948c; --vault:#d9541f;
  --l-trade:#7f8ea3; --l-family:#d9541f; --l-fund:#141311; --l-vault:#b9b2aa;
  color-scheme:light;
}
*{box-sizing:border-box} html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Pretendard,system-ui,-apple-system,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;line-height:1.7;word-break:keep-all;overflow-x:hidden}
a{color:inherit} code{font-family:'JetBrains Mono',ui-monospace,Consolas,monospace;font-size:.84em;background:var(--paper2);padding:.05em .35em;border-radius:4px}
button{font:inherit;color:inherit}
html[data-lang=ko] [data-l=en], html[data-lang=en] [data-l=ko]{display:none!important}

/* top bar */
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;padding:10px 24px;background:rgba(243,239,236,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.me{display:flex;align-items:center;gap:10px;text-decoration:none}
.me img{width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);object-fit:cover;background:#fff}
.me span{display:flex;flex-direction:column;line-height:1.15} .me b{font-size:15px} .me i{font-style:normal;font-size:12.5px;color:var(--mute)}
.crumb{flex:1;display:flex;gap:8px;align-items:center;font-size:14px;color:var(--mute);min-width:0}
.crumb a{text-decoration:none;color:var(--ink2)} .crumb a:hover{color:var(--acc)} .crumb b{color:var(--ink)}
.lang{display:flex;border:1px solid var(--line2);border-radius:999px;padding:3px;background:var(--card)}
.lang button{border:0;background:none;padding:4px 12px;border-radius:999px;font-size:13px;cursor:pointer;color:var(--ink2)}
.lang button.on{background:var(--ink);color:var(--paper)}

/* hub */
.hub .hero{max-width:1080px;margin:0 auto;padding:36px 24px 10px}
.banner{display:block;width:100%;aspect-ratio:3/1;object-fit:cover;border-radius:18px;border:1px solid var(--line)}
.hub h1{font-size:clamp(34px,6vw,64px);line-height:1.05;letter-spacing:-.03em;margin:34px 0 14px}
.lede{font-size:clamp(16px,2vw,19px);color:var(--ink2);max-width:760px;margin:0}
.grid{max-width:1080px;margin:28px auto 0;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.xcard{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 22px 18px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.xcard:hover{transform:translateY(-3px);box-shadow:0 14px 34px -18px rgba(20,19,17,.35);border-color:var(--line2)}
.xc-top{display:flex;justify-content:space-between;align-items:baseline} .xc-top h3{margin:0;font-size:28px;letter-spacing:-.02em}
.xc-date{font-size:13px;color:var(--mute);font-variant-numeric:tabular-nums} .xc-tag{margin:0;color:var(--mute);font-size:14px}
.xc-line{margin:0;font-size:16.5px;font-weight:600;line-height:1.5}
.xc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
.xc-stats div{background:var(--paper);border-radius:10px;padding:10px 12px} .xc-stats b{display:block;font-size:20px;letter-spacing:-.02em} .xc-stats span{font-size:11.5px;color:var(--mute)}
.xc-foot{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink2);margin-top:4px}
.flagn{background:var(--accbg);color:var(--acc2);font-weight:800;border-radius:999px;padding:0 9px}
.go{margin-left:auto;font-weight:700;color:var(--acc)}
.method{max-width:1080px;margin:56px auto 0;padding:0 24px} .method h2{font-size:22px;margin:0 0 14px}
.m3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.m3>div{border-top:2px solid var(--ink);padding-top:12px} .m3 b{font-size:13px;color:var(--acc)} .m3 h4{margin:4px 0 6px;font-size:18px} .m3 p{margin:0;color:var(--ink2);font-size:15px}

/* report layout */
.layout{max-width:1240px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:48px}
.toc{position:sticky;top:76px;align-self:start;display:flex;flex-direction:column;gap:2px;padding-top:44px;max-height:calc(100vh - 90px);overflow:auto}
.toc a{font-size:13.5px;text-decoration:none;color:var(--mute);padding:5px 10px;border-left:2px solid transparent;line-height:1.35}
.toc a:hover{color:var(--ink)} .toc a.on{color:var(--ink);border-left-color:var(--acc);font-weight:600}
.main{min-width:0;max-width:860px;padding-bottom:40px}
.rhead{padding:44px 0 8px} .kick{margin:0;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);font-weight:700}
.rhead h1{font-size:clamp(34px,5.4vw,58px);line-height:1.05;letter-spacing:-.03em;margin:10px 0 12px}
.sub{font-size:clamp(16px,2vw,19px);color:var(--ink2);margin:0 0 12px} .meta{font-size:13px;color:var(--mute);margin:0;padding-bottom:18px;border-bottom:1px solid var(--line)}
.main h2{font-size:clamp(22px,3vw,28px);letter-spacing:-.02em;line-height:1.25;margin:0 0 14px}
.main h3{font-size:18.5px;margin:26px 0 8px}
.main section{padding:44px 0 6px;border-bottom:1px solid var(--line);scroll-margin-top:70px}
.main p,.main li{font-size:16.2px} .main ul,.main ol{padding-left:20px} .main li{margin:6px 0}
.note{font-size:14px!important;color:var(--mute)}

.keys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0 8px}
.k{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;cursor:pointer;transition:border-color .2s,transform .2s}
.k:hover{border-color:var(--ink);transform:translateY(-2px)} .k b{font-size:clamp(24px,3vw,32px);letter-spacing:-.02em;line-height:1.15} .k.hi b{color:var(--acc)}
.k span{font-size:13px;color:var(--ink2);line-height:1.45;margin-top:4px} .k i{font-style:normal;font-size:12px;color:var(--mute);margin-top:8px}
.flagbox{background:var(--accbg);border:0!important;border-radius:16px;padding:24px 26px!important;margin-top:20px}
.flagbox h2{color:var(--acc2)} .flagbox li{margin:10px 0}
.sumbox{padding:22px 0 6px!important} .sumbox h3{margin-top:0}

.ev{border:1px solid var(--line2);background:var(--card);border-radius:999px;padding:1px 10px;font-size:12.5px;cursor:pointer;color:var(--ink2);vertical-align:2px;white-space:nowrap;transition:all .15s}
.ev:hover,.ev:focus-visible{border-color:var(--acc);color:var(--acc);outline:none}
.flagbox .ev{background:#fff7f2;border-color:#f1c2ab}
.evrow{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 6px;padding-top:14px;border-top:1px dashed var(--line2)}
.evrow::before{content:'';} .evrow .ev{font-size:13px;padding:4px 12px}

.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0}
table{border-collapse:collapse;width:100%;font-size:14.5px}
th{text-align:left;color:var(--mute);font-weight:600;border-bottom:1px solid var(--line2);padding:8px 10px;white-space:nowrap}
td{border-bottom:1px solid var(--line);padding:9px 10px;vertical-align:top} td.num,.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.half{max-width:460px}
.badge{display:inline-block;padding:1px 9px;border-radius:999px;font-weight:700;font-size:12.5px;white-space:nowrap}
.badge.an{background:var(--accbg);color:var(--acc2)} .badge.ok{background:var(--okbg);color:var(--ok)} .badge.nv{background:var(--nvbg);color:var(--nv)}
.chk tr.ck{cursor:pointer;transition:background .15s} .chk tr.ck:hover,.chk tr.ck:focus-visible{background:var(--card);outline:none}
.evm{display:inline-block;font-size:12px;color:var(--acc);margin-left:4px;white-space:nowrap}
.filt{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 4px}
.filt button{border:1px solid var(--line2);background:var(--card);border-radius:999px;padding:4px 14px;font-size:13.5px;cursor:pointer}
.filt button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

figure{margin:22px 0 10px} figcaption{font-size:13.5px;color:var(--mute);margin-bottom:8px}
.chart{width:100%;min-height:120px} .chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart text{font-family:inherit} .chart .ax text{fill:var(--mute);font-size:12px} .chart .ax line,.chart .ax path{stroke:var(--line2)} .chart .grid line{stroke:var(--line)}
.chart .bar{transition:opacity .15s} .chart .bar.dim{opacity:.35}
.tip{position:fixed;z-index:60;pointer-events:none;background:var(--ink);color:var(--paper);font-size:13px;line-height:1.45;padding:7px 10px;border-radius:8px;box-shadow:0 8px 20px -8px rgba(0,0,0,.4);max-width:260px}
.tip b{font-size:15px}

/* bubble map */
.mapsec p{max-width:760px}
.mapbar{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;margin:14px 0 10px}
.tog{display:flex;flex-wrap:wrap;gap:6px 14px} .tog label{display:flex;align-items:center;gap:6px;font-size:13.5px;cursor:pointer;user-select:none}
.tog input{accent-color:var(--ink);margin:0}
.ln{display:inline-block;width:22px;height:0;border-top:2px solid} .ln.trade{border-color:var(--l-trade)} .ln.family{border-color:var(--l-family);border-top-width:3px} .ln.fund{border-color:var(--l-fund);border-top-style:dashed} .ln.vault{border-color:var(--l-vault);border-top-style:dotted;border-top-width:3px}
.srch{display:flex;gap:6px} .srch input{border:1px solid var(--line2);background:var(--card);border-radius:999px;padding:5px 14px;font:inherit;font-size:13.5px;width:190px}
.srch button{border:1px solid var(--line2);background:var(--card);border-radius:999px;padding:4px 12px;font-size:13px;cursor:pointer}
.mapwrap{position:relative;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;height:min(72vh,640px);min-height:420px}
.bmap{width:100%;height:100%;display:block;cursor:grab;touch-action:none} .bmap:active{cursor:grabbing}
.bmap .lbl{font-size:10.5px;fill:var(--ink2);pointer-events:none;font-weight:600}
.bmap .hull{fill:none;stroke:var(--acc);stroke-width:1.2;stroke-dasharray:4 4;opacity:.65} .bmap .hlbl{font-size:12px;font-weight:800;fill:var(--acc2)}
.mpanel{position:absolute;top:12px;right:12px;width:min(310px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;background:rgba(251,249,247,.97);border:1px solid var(--line2);border-radius:14px;padding:14px 16px;font-size:13.5px;box-shadow:0 18px 40px -22px rgba(20,19,17,.5)}
.mpanel h4{margin:0 0 2px;font-size:17px} .mpanel .addr{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;color:var(--mute);word-break:break-all;margin:0 0 8px}
.mpanel dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:8px 0} .mpanel dt{color:var(--mute)} .mpanel dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.mpanel .tags{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0} .tag{font-size:11.5px;border-radius:999px;padding:1px 8px;background:var(--nvbg);font-weight:700}
.tag.bot{background:var(--accbg);color:var(--acc2)} .tag.fam{background:#f3dccf;color:var(--acc2)} .tag.off{background:#e6e1dc}
.mpanel a.lnk{display:inline-block;margin:6px 8px 0 0;font-size:12.5px;color:var(--acc);font-weight:600}
.mpanel .x{position:absolute;top:6px;right:10px;border:0;background:none;font-size:20px;cursor:pointer;color:var(--mute)}
.mpanel ul{margin:4px 0;padding-left:16px} .mpanel li{font-size:12.5px!important;margin:2px 0}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink2);margin:10px 0 0}
.legend span{display:flex;align-items:center;gap:6px}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%} .dot.mm{background:var(--mm)} .dot.taker{background:var(--tk)} .dot.mixed{background:var(--mx)}
.dot.ring{border:2.5px solid var(--acc);background:transparent} .dot.dash{border:2px dashed var(--ink2)} .dot.cex{background:var(--cex);border-radius:3px} .dot.funder{background:var(--fund);border-radius:3px;transform:scale(.8)} .dot.vault{background:var(--vault);border-radius:3px}
.atbl th{cursor:pointer;user-select:none} .atbl th:hover{color:var(--ink)} .atbl th.s::after{content:' ↓'} .atbl th.s.asc::after{content:' ↑'}
.atbl tbody tr{cursor:pointer} .atbl tbody tr:hover{background:var(--card)} .tw.acct{max-height:440px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.tw.acct thead th{position:sticky;top:0;background:var(--paper)}

.shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px} .shot img{width:100%;display:block;border-radius:12px;border:1px solid var(--line);transition:transform .2s} .shot:hover img{transform:scale(1.015)}

/* evidence drawer */
.scrim{position:fixed;inset:0;background:rgba(20,19,17,.28);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,100%);z-index:50;background:var(--card);border-left:1px solid var(--line2);box-shadow:-24px 0 60px -30px rgba(20,19,17,.5);overflow:auto;padding:26px 26px 40px;animation:din .22s ease-out}
@keyframes din{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.drawer .x{position:absolute;top:12px;right:14px;border:0;background:none;font-size:26px;cursor:pointer;color:var(--mute)}
.dbody .dk{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);font-weight:800;margin:0}
.dbody h3{font-size:22px;letter-spacing:-.02em;margin:6px 0 12px;line-height:1.3} .dbody p,.dbody li{font-size:15px} .dbody table{font-size:14px;margin:8px 0}
.dbody .links{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)} .dbody .links h4{margin:0 0 8px;font-size:13px;color:var(--mute)}
.dbody .links a{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:14px} .dbody .links a::after{content:'↗';color:var(--acc)}
.dbody .links a:hover{color:var(--acc)}

.foot{max-width:1240px;margin:40px auto 0;padding:28px 24px 48px;border-top:1px solid var(--line);display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.foot p{flex:1;min-width:260px;margin:0;font-size:13px;color:var(--mute)}

@media (max-width:900px){
  .layout{grid-template-columns:1fr;gap:0} .toc{display:none}
  .keys{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .top{padding:8px 16px;gap:10px} .me i{display:none} .crumb{font-size:12.5px} .crumb a span{display:none} .crumb a::before{content:'←'}
  .layout,.hub .hero,.grid,.method{padding-left:16px;padding-right:16px}
  .main p,.main li{font-size:15.5px} .flagbox{padding:18px 16px!important}
  .shots{grid-template-columns:1fr} .srch input{width:150px} .mapwrap{height:70vh}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.evl{width:100%;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700}
.xlogo{width:34px;height:34px;border-radius:9px;vertical-align:-6px;margin-right:10px}
.xc-top h3{display:flex;align-items:center}
.rlogo{width:52px;height:52px;border-radius:13px;display:block;margin-bottom:16px}
.mapnote{font-size:13px!important;color:var(--mute);margin:10px 0 0;max-width:none!important;line-height:1.6}
