@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#ece8dc;--card:#f7f5ee;--ink:#1c3540;--muted:#6d7774;--line:#ccd0c6;--accent:#ba6848;--sea:#276b70;--navy:#162f3b;font-family:Manrope,'Noto Sans KR','Malgun Gothic',sans-serif;color:var(--ink)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper)}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.site-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:78px;flex:none;display:grid;grid-template-columns:285px 1fr 300px;align-items:center;padding:0 30px;background:#f8f6ef;border-bottom:1px solid var(--line);position:relative;z-index:8}.wordmark{display:flex;align-items:center;gap:10px;width:max-content;color:var(--navy);font-size:9px;font-weight:800;line-height:1.12;letter-spacing:1.8px}.mark{font-family:Arial,sans-serif;font-size:36px;line-height:1;font-weight:900;letter-spacing:-6px}.mark-dot{color:var(--accent);letter-spacing:0}.topbar-center{display:flex;align-items:center;gap:30px}.topbar-kicker,.panel-kicker,.atlas-index,.inspector-top,.page-footer,.detail-meta-label{font-family:'DM Sans',Arial,sans-serif;letter-spacing:1.8px;font-weight:700;font-size:10px}.topbar-kicker{color:#78908d;white-space:nowrap}.topbar-rule,.head-rule{display:inline-block;width:26px;height:1px;background:#9aaba5;vertical-align:middle;margin:0 10px}.topbar-title{font-size:17px;font-weight:800;white-space:nowrap}.topbar-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding-right:0}.topbar-actions a{font-size:11px;font-weight:700;border:1px solid var(--line);border-radius:40px;padding:10px 14px;white-space:nowrap}.topbar-actions a span{font-size:14px;margin-left:12px;color:var(--accent)}.topbar-actions a:hover{border-color:var(--accent);color:var(--accent)}#explorer-toggle{display:none;border:1px solid var(--line);background:transparent;padding:10px 12px;border-radius:20px;color:var(--ink);font-size:11px;font-weight:700}
.workspace{flex:1;min-height:0;display:grid;grid-template-columns:285px minmax(0,1fr) 300px}.explorer{background:#f5f2ea;border-right:1px solid var(--line);padding:31px 21px 24px 30px;display:flex;flex-direction:column;min-height:750px;max-height:calc(100vh - 78px);overflow:hidden}.panel-kicker{color:var(--accent);font-size:9px;display:flex;align-items:center;gap:8px}.accent-line{width:16px;height:2px;background:var(--accent)}.explorer h1{font-size:28px;line-height:1.28;letter-spacing:-1.8px;margin:17px 0 10px;font-weight:800}.explorer h1 em{font-style:normal;color:var(--accent)}.intro{font-size:11px;line-height:1.7;color:#73817c;margin:0 0 29px;word-break:keep-all}.field-label{font-size:10px;font-weight:800;display:flex;justify-content:space-between;align-items:center;margin:0 0 9px}.field-label span{font-size:9px;color:#9ca7a1;font-weight:700;letter-spacing:.8px}.explorer select,.search-wrap{background:var(--card);border:1px solid #c9d2cc;border-radius:7px;width:100%;height:43px;color:var(--ink)}.explorer select{padding:0 12px;font-size:11px;font-weight:700;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%231c3540' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center}.metric-row{display:flex;gap:9px;margin:11px 0 26px}.metric{flex:1;border-right:1px solid var(--line);font-size:9px;color:#8b9891;white-space:nowrap}.metric:last-child{border:0}.metric strong{display:block;color:var(--navy);font-size:18px;line-height:1.25;letter-spacing:-.6px}.search-wrap{display:flex;align-items:center;padding:0 11px;margin-bottom:22px}.search-wrap span{font-size:25px;line-height:0;color:var(--accent);margin-right:8px}.search-wrap input{min-width:0;border:0;outline:0;background:transparent;width:100%;color:var(--ink);font-size:11px}.search-wrap input::placeholder{color:#a1ada6}.list-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:800;padding-bottom:11px;border-bottom:1px solid var(--line)}.list-heading button{font-size:9px;border:0;background:none;color:var(--sea);font-weight:800}.communities{max-height:195px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c4cec6 transparent;padding:8px 0 14px;display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}.community{display:inline-flex;align-items:center;gap:6px;text-align:left;max-width:100%;padding:6px 8px;border-radius:4px;border:1px solid #cbd5ce;background:transparent;color:#536a69;font-size:9px;line-height:1.3}.community i,.node-list i{width:6px;height:6px;flex:none;border-radius:50%;background:var(--star)}.community span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.community small{color:#87968f;font-size:8px}.community:hover,.community[aria-pressed=true]{background:#fff;border-color:var(--star);color:var(--ink)}.knowledge-heading{margin-top:4px}.knowledge-heading>span:last-child{color:#929e99;font-size:9px}.node-list{flex:1;min-height:100px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c4cec6 transparent}.node-option{display:flex;align-items:center;gap:9px;border:0;border-bottom:1px solid #d8dbd1;background:transparent;width:100%;padding:10px 4px;color:#465e60;text-align:left;font-size:10px;line-height:1.45}.node-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.node-option small{font-size:12px;color:#9cadac}.node-option:hover,.node-option[aria-pressed=true]{color:var(--accent);background:#ede9df}.empty-result{font-size:11px;color:var(--muted);line-height:1.6}
.atlas{min-width:0;display:flex;flex-direction:column;padding:28px 28px 16px;background:var(--paper)}.atlas-head{flex:none}.atlas-index{font-size:9px;color:var(--accent)}.atlas-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.atlas-title h2{font-size:24px;margin:10px 0 17px;letter-spacing:-1.2px}.atlas-title p{font-size:10px;color:#8a9590;margin:0;text-align:right}.map-surface{position:relative;flex:1;min-height:540px;overflow:hidden;border:1px solid #b8c5bd;background:#f7f6ee;background-image:radial-gradient(circle at 48% 48%,#fbfaf4 0,#f5f3e9 70%,#e9ece4 100%);box-shadow:0 6px 35px #49615b13}.map-surface::before,.map-surface::after{content:'';position:absolute;z-index:2;pointer-events:none;width:42px;height:42px;border-color:#668587}.map-surface::before{left:8px;top:8px;border-top:1px solid;border-left:1px solid}.map-surface::after{right:8px;bottom:8px;border-right:1px solid;border-bottom:1px solid}#atlas-svg{width:100%;height:100%;display:block;touch-action:none;cursor:grab}#atlas-svg.dragging{cursor:grabbing}.map-corner{position:absolute;z-index:2;pointer-events:none;font:700 8px/1.6 'DM Sans',Arial,sans-serif;letter-spacing:1.5px;color:#8fa39e}.map-corner-tl{top:17px;left:24px}.map-corner-br{right:24px;bottom:18px;text-align:right}.map-tooltip{position:absolute;z-index:5;pointer-events:none;max-width:230px;padding:9px 12px;background:var(--navy);color:#fff;font-size:10px;line-height:1.45;box-shadow:0 7px 23px #10212b30}.map-tools{position:absolute;z-index:4;bottom:17px;left:20px;display:flex;align-items:center;gap:1px;padding:3px;border:1px solid #bdcbc4;background:#faf9f4e8;box-shadow:0 6px 18px #244b4615}.map-tools button{border:0;background:transparent;color:var(--ink);height:30px;min-width:30px;font-size:16px}.map-tools button:first-child{font-size:9px;font-weight:800;padding:0 9px;border-right:1px solid #d6ded7}.map-tools button:hover{background:#e1ebe4}.map-tools span{font-size:9px;color:#879892;min-width:36px;text-align:center}.map-status{position:absolute;z-index:3;top:20px;right:23px;color:#788b83;font-size:9px;font-weight:700;background:#f9f9f2ba;padding:6px 9px}.atlas-footer{height:32px;flex:none;display:flex;justify-content:space-between;align-items:flex-end;gap:14px;color:#788980;font-size:9px}.atlas-footer>span:first-child{display:flex;align-items:center;gap:8px;white-space:nowrap}.legend-star{height:6px;width:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 3px #ba684828}.legend-line{width:16px;border-top:1px solid var(--sea);margin-left:6px}
.region-boundary{fill-opacity:.065;stroke-opacity:.47;stroke-width:1.5;stroke-dasharray:5 6}.region-index{font:700 10px 'DM Sans',Arial,sans-serif;fill:#879c96;letter-spacing:1px}.region-title{font:700 16px Manrope,'Noto Sans KR','Malgun Gothic',sans-serif;fill:#24414a;paint-order:stroke;stroke:#f8f8f0;stroke-width:4px;stroke-linejoin:round}.region-count{font:700 10px 'DM Sans',Arial,sans-serif;fill:#849995}.map-edge{fill:none;stroke:#608b8a;stroke-width:1.2;opacity:.12;pointer-events:none}.map-edge.cross{opacity:.035}.map-edge.inferred{stroke-dasharray:3 4}.map-edge.active{stroke:var(--accent);stroke-width:2.2;opacity:.9}.map-edge.muted{opacity:.015}.map-node{cursor:pointer}.map-node .halo{fill:none;stroke-width:1.2;opacity:.35}.map-node .core{stroke:#fff;stroke-width:1.7}.map-node .hit-area{fill:transparent;pointer-events:all}.map-node:hover .halo,.map-node.selected .halo{opacity:1;stroke-width:2.2}.map-node.selected .core{stroke:var(--ink);stroke-width:2.2}.map-node.muted{opacity:.14}.map-node.related{opacity:1}.node-label{font:700 13px Manrope,'Noto Sans KR','Malgun Gothic',sans-serif;fill:#3a575b;stroke:#f8f8f0;stroke-width:3px;paint-order:stroke;stroke-linejoin:round;pointer-events:none}.node-label.active{fill:var(--accent);font-weight:800}.node-label.muted{opacity:.14}
.inspector{background:#f8f7f1;border-left:1px solid var(--line);padding:30px 25px 24px;min-width:0;max-height:calc(100vh - 78px);overflow:auto;scrollbar-width:thin;scrollbar-color:#c8d2ca transparent}.inspector-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:15px;border-bottom:1px solid var(--line);color:var(--accent);font-size:9px}.inspector-top button{border:0;background:transparent;color:var(--accent);font-size:17px;line-height:1}.detail-empty{margin-top:65px}.empty-symbol{display:block;color:var(--accent);font-size:54px;line-height:1}.detail-empty h2{font-size:22px;line-height:1.4;letter-spacing:-1px;margin:24px 0 16px}.detail-empty p{font-size:11px;line-height:1.8;color:var(--muted);word-break:keep-all}.detail-category{margin-top:31px;display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;color:var(--accent)}.detail-category i{display:block;width:7px;height:7px;border-radius:50%;background:var(--star)}#detail-title{font-size:23px;line-height:1.42;letter-spacing:-.9px;overflow-wrap:anywhere;margin:15px 0 16px}#detail-summary{color:#617470;font-size:11px;line-height:1.8;word-break:keep-all}.detail-divider{height:1px;background:var(--line);margin:25px 0 19px}.detail-meta-label{font-size:8px;color:var(--accent)}.detail-source{font-size:10px;line-height:1.6;overflow-wrap:anywhere;color:#677c78;margin:8px 0 17px}.primary-link{display:flex;justify-content:space-between;align-items:center;padding:13px 14px;background:var(--navy);color:white;font-size:10px;font-weight:800}.primary-link span{font-size:17px;color:#d5a188}.primary-link:hover{background:var(--sea)}.preview-link{display:block;margin-top:12px;position:relative;border:1px solid var(--line)}.preview-link img{width:100%;max-height:125px;object-fit:cover;display:block}.preview-link span{position:absolute;bottom:0;right:0;background:#122f3bdc;color:white;font-size:9px;padding:6px 9px}.related-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 0 7px;font-size:11px;font-weight:800}.related-heading strong{font:800 22px 'DM Sans',sans-serif;color:var(--accent)}.relation-help{color:#8b9992;font-size:9px;line-height:1.5}.relations{display:flex;flex-direction:column;gap:7px;margin-top:13px}.relation{border:1px solid #d3dcd4;text-align:left;background:#fdfcf8;color:var(--ink);padding:10px 12px;line-height:1.5}.relation:hover{border-color:var(--accent);background:#f6ede5}.relation small{display:block;color:var(--accent);font-size:8px;margin-bottom:5px}.relation span{font-size:10px;font-weight:700}.no-relations{font-size:10px;color:var(--muted)}.page-footer{min-height:38px;display:flex;justify-content:space-between;align-items:center;padding:0 30px;background:#e7e7dd;border-top:1px solid var(--line);font-size:8px;color:#83948b}.page-footer b{color:var(--accent)}.load-error{position:fixed;z-index:20;left:50%;top:45%;transform:translate(-50%,-50%);padding:23px;background:white;border:1px solid var(--accent);box-shadow:0 10px 45px #122f3b29;font-size:12px}.load-error button{border:0;color:white;background:var(--accent);padding:8px;margin-left:12px}
body .version-switcher{top:17px;right:180px;background:#fcfbf5e8;border-color:#b8c7bf;color:#607773;box-shadow:0 4px 20px #334b421b}body .version-switcher>a{color:#516c69}body .version-switcher>a[aria-current]{background:var(--navy);color:#fff}body .version-switcher>a:hover{box-shadow:inset 0 0 0 1px #6a8b86}
@media(max-width:1250px){.topbar{grid-template-columns:245px 1fr 220px}.topbar-kicker{display:none}.workspace{grid-template-columns:245px minmax(0,1fr) 270px}.explorer{padding-left:20px;padding-right:17px}.inspector{padding-left:19px;padding-right:19px}.atlas{padding-left:17px;padding-right:17px}.atlas-title p{display:none}}
@media(max-width:980px){.topbar{grid-template-columns:220px 1fr auto}.workspace{grid-template-columns:220px minmax(0,1fr)}.inspector{grid-column:2;max-height:none;border-top:1px solid var(--line);border-left:0}.explorer{grid-row:1/3;max-height:none}.atlas{min-height:690px}.map-surface{min-height:520px}}
@media(min-width:701px) and (max-width:980px){body .version-switcher{top:82px;right:12px}.atlas-head{padding-top:36px}}
@media(max-width:700px){.topbar{height:68px;padding:0 17px;grid-template-columns:1fr auto;gap:8px}.wordmark{font-size:8px}.mark{font-size:31px}.topbar-center{display:none}.topbar-actions a{display:none}#explorer-toggle{display:block}.workspace{display:flex;flex-direction:column}.explorer{display:none;max-height:none;min-height:0;border-right:0;border-bottom:1px solid var(--line);padding:20px 18px}.filters-open .explorer{display:flex}.explorer h1{font-size:24px}.communities{max-height:145px}.node-list{max-height:220px}.atlas{order:1;padding:23px 12px 16px;min-height:0}.explorer{order:0}.inspector{order:2;border-left:0;border-top:1px solid var(--line);padding:22px 18px;max-height:none}.atlas-title{display:block}.atlas-title h2{font-size:20px;margin-bottom:17px}.map-surface{height:60svh;min-height:480px;flex:none}.atlas-footer{font-size:8px}.atlas-footer>span:last-child{display:none}.map-status{top:12px;right:10px;font-size:8px}.map-tools{bottom:12px;left:12px}.map-corner{display:none}.detail-empty{margin-top:30px}.page-footer{padding:12px 18px;gap:10px;line-height:1.5}.page-footer span:last-child{display:none}body .version-switcher{top:auto;bottom:9px;right:9px;left:9px;width:max-content;max-width:calc(100vw - 18px);overflow:auto;margin-left:auto;padding:3px;z-index:11}body .version-switcher>a{font-size:8px;padding:6px 7px}.inspector-top{padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
/* Keep the full atlas visible when another star is selected. */
.map-node.muted{opacity:.4}
@media(max-width:700px){body:has(.atlas) .version-switcher{display:flex!important}}

/* V4 lives in the same nebula as the original graph. */
:root{color-scheme:dark;--paper:#050b16;--card:#0c1e2b;--ink:#eaf5fa;--muted:#9fb8c4;--line:#9ac4d43b;--accent:#f2ac7d;--sea:#78d8df;--navy:#071724;color:var(--ink)}
body{background:#040a15;color:var(--ink)}
.site-shell{position:relative;isolation:isolate;background:radial-gradient(ellipse at 55% 55%,#07152677,#030b19bb 80%)}
.site-shell::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(ellipse at 52% 47%,#03102544 0%,#04101d78 75%),linear-gradient(180deg,#030a16cc 0%,#05122140 45%,#040916cf 100%),url('/assets/nebula-reference.png');background-size:cover;background-position:center,center,50% 47%;filter:saturate(1.13);opacity:.83}
.topbar{background:#06111cdb;border-color:#a4cfdf38;backdrop-filter:blur(22px)}.wordmark,.topbar-title{color:#eaf7fb}.mark-dot,.panel-kicker,.atlas-index,.inspector-top{color:var(--accent)}.topbar-kicker{color:#7f9dab}.topbar-rule,.head-rule{background:#8cb6bf}.topbar-actions a,#explorer-toggle{border-color:#8ab9ca55;color:#d2e7ec;background:#081c2b9c}.topbar-actions a:hover{border-color:var(--accent);color:white}.topbar-actions a span{color:var(--accent)}
.explorer,.inspector{background:linear-gradient(145deg,#0a1b2ce8,#081522e9);backdrop-filter:blur(22px);border-color:#9ac4d42e;box-shadow:0 16px 45px #01070c55}.explorer h1,.detail-empty h2,#detail-title{color:#ecf8fc}.explorer h1 em{color:var(--accent)}.intro,.detail-empty p,#detail-summary{color:#9eb7c1}.field-label,.list-heading{color:#c1d7df;border-color:#789dab36}.field-label span,.knowledge-heading>span:last-child{color:#7f9eab}.explorer select,.search-wrap{background:#0b2030;border-color:#7aa9b754;color:#e6f5f9}.explorer select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%23c9e7ef' stroke-width='1.5'/%3E%3C/svg%3E")}.metric{color:#879fa9;border-color:#688c973d}.metric strong{color:#eaf7fa}.search-wrap span{color:var(--accent)}.search-wrap input{color:#eef8fa}.search-wrap input::placeholder{color:#78949e}.list-heading button{color:var(--sea)}.communities,.node-list,.inspector{scrollbar-color:#678a9855 transparent}.community{background:#d8f0fb0a;color:#acc5ce;border-color:#6a99a849}.community small{color:#7f9fac}.community:hover,.community[aria-pressed=true]{background:#abdded1b;color:#fff;border-color:var(--star)}.node-option{color:#a8c4cd;border-color:#93bdc226}.node-option small{color:#7e9baa}.node-option:hover,.node-option[aria-pressed=true]{background:#a0dbe414;color:var(--accent)}.empty-result{color:#8faab4}
.atlas{background:transparent}.atlas-title h2{color:#f0f9fb}.atlas-title p,.atlas-footer,.map-corner{color:#91afba}.map-surface{background:radial-gradient(ellipse at 50% 50%,#0c29402c,#020a166e 80%);border-color:#79abbd43;box-shadow:inset 0 0 110px #0209167d,0 12px 55px #0106104d}.map-surface::before,.map-surface::after{border-color:#9ed9e483}#atlas-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}#atlas-canvas.dragging{cursor:grabbing}.map-tooltip{background:#0c2334f2;border:1px solid #9dd8e077;color:#f1fbfd;box-shadow:0 9px 32px #0007}.map-tools{border-color:#8ebccb69;background:#081b2cdb;backdrop-filter:blur(15px);box-shadow:0 8px 28px #0008}.map-tools button{color:#d4eef2}.map-tools button:first-child{border-color:#8ebccb44}.map-tools button:hover,.map-tools button[aria-pressed=false]{background:#a7dce71f;color:#fff}.map-tools span{color:#8fb1bf}.map-status{color:#b5d5dc;background:#081a2bb8;border:1px solid #83b6c53a;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-star{background:var(--accent);box-shadow:0 0 0 3px #f2ac7d44,0 0 12px var(--accent)}.legend-line{border-color:var(--sea)}
.inspector-top{border-color:#83aab63b}.detail-category{color:var(--accent)}.detail-divider{background:#8ab1be35}.detail-meta-label{color:var(--accent)}.detail-source,.relation-help{color:#90aab4}.primary-link{background:#bfe5ee;color:#08202b}.primary-link span{color:#b55d41}.primary-link:hover{background:#e6faff}.preview-link{border-color:#75aab854}.preview-link span{background:#071826d9}.related-heading{color:#e6f5f8}.related-heading strong{color:var(--accent)}.relation{background:#9ed8e40c;border-color:#86b6c338;color:#dceef3}.relation:hover{background:#9ed8e41c;border-color:var(--accent)}.relation small{color:var(--accent)}.no-relations{color:#92adb7}.page-footer{background:#061522d6;color:#8caab5;border-color:#7eaab837}.load-error{background:#0c2230;color:#fff;border-color:var(--accent)}
body .version-switcher{background:#081b2be8;border-color:#83b4c353;color:#a7c8d1}body .version-switcher>a{color:#bad3dc}body .version-switcher>a[aria-current]{background:#c8e9f0;color:#09202d}body .version-switcher>a:hover{box-shadow:inset 0 0 0 1px #bde8f0}
@media(max-width:700px){.site-shell::before{background-position:center,center,53% 50%;opacity:.75}.explorer{background:#081a2bf5}.inspector{background:#081a2bed}.map-surface{height:60svh;min-height:480px}.map-status{max-width:57%;font-size:7px}body .version-switcher{background:#081b2bf0}}
.explorer select{background-repeat:no-repeat;background-position:right 13px center}
