:root{--panel:#0b1223ee;--line:#25304a;--muted:#8190ad;--text:#edf3ff;--accent:#86e9ff}*{box-sizing:border-box}html,body{width:100%;height:100%;color:var(--text);background:#030610;margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}.atlas{background:#030610;grid-template-columns:minmax(0,1fr) 420px;width:100vw;height:100dvh;font-family:Noto Sans JP,sans-serif;display:grid}.map-wrap{min-width:0;position:relative;overflow:hidden}.map-canvas{cursor:grab;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.map-canvas:active{cursor:grabbing}.map-header{z-index:2;pointer-events:none;background:linear-gradient(#030610b8,#0000);justify-content:space-between;align-items:center;padding:28px 32px;display:flex;position:absolute;top:0;left:0;right:0}.wordmark{color:#fff;pointer-events:auto;align-items:center;gap:14px;text-decoration:none;display:flex}.mark{width:46px;height:46px;color:var(--accent);background:#101c34aa;border:1px solid #86e9ff55;place-items:center;font-size:24px;display:grid;transform:rotate(45deg)}.mark:first-letter{transform:rotate(-45deg)}.wordmark>span:last-child{flex-direction:column;gap:4px;display:flex}.wordmark strong{letter-spacing:.13em;font:500 21px/1 IBM Plex Mono,monospace}.wordmark small{letter-spacing:.18em;color:var(--muted);font:400 11px/1 IBM Plex Mono,monospace}.data-state{color:#a9b7d0;letter-spacing:.07em;align-items:center;gap:9px;font:14px IBM Plex Mono,monospace;display:flex}.data-state i{background:#69e2a4;border-radius:50%;width:7px;height:7px;box-shadow:0 0 10px #69e2a4}.map-actions{z-index:2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c1427d9;border:1px solid #31405e;border-radius:10px;align-items:center;padding:6px;display:flex;position:absolute;bottom:30px;left:28px}.map-actions button{color:#cbd6eb;cursor:pointer;background:0 0;border:0;border-right:1px solid #26324b;place-items:center;width:44px;height:40px;display:grid}.map-actions button svg{stroke-width:1.8px;width:20px;height:20px}.map-actions button:hover{color:#fff;background:#17233c}.map-actions span{text-align:center;width:68px;color:var(--muted);font:15px IBM Plex Mono,monospace}.side-panel{z-index:4;border-left:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);flex-direction:column;height:100dvh;display:flex;overflow:hidden;box-shadow:-18px 0 60px #0005}.panel-handle,.panel-close{display:none}.search-wrap{border-bottom:1px solid var(--line);padding:26px 24px 18px}.search-box{background:#070d19;border:1px solid #34415c;border-radius:11px;align-items:center;gap:13px;height:58px;padding:0 16px;transition:border-color .2s,box-shadow .2s;display:flex}.search-box:focus-within{border-color:#75dff1;box-shadow:0 0 0 3px #75dff112}.search-box>svg{color:#9fb0cb;stroke-width:1.8px;flex:none;width:20px;height:20px}.search-box input{color:#eef6ff;background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:17px}.search-box input::placeholder{color:#64738e}.search-box button{color:#7686a1;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:30px;height:30px;padding:0;display:grid}.search-box button:hover{color:#fff;background:#17233c}.search-box button svg{width:18px;height:18px}.random-button{color:#9dacbf;text-align:left;letter-spacing:.03em;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;width:100%;margin-top:13px;padding:6px 2px;font-size:15px;display:flex}.random-button svg{stroke-width:1.8px;width:17px;height:17px}.random-button:hover{color:var(--accent)}.script-filter,.search-results{border-bottom:1px solid var(--line);padding:16px 20px}.section-title{color:#c3cee0;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:14px;font:500 14px IBM Plex Mono,monospace;display:flex}.section-title small{color:#71819d;letter-spacing:.04em;font-size:12px}.chips{flex-wrap:wrap;gap:7px;padding:0 4px 2px 0;display:flex}.chips button{color:#b7c2d4;cursor:pointer;background:#0d1628;border:1px solid #2c3852;border-radius:20px;flex:none;align-items:center;gap:7px;height:36px;padding:0 12px;font:12px IBM Plex Mono,monospace;display:flex}.chips button:hover,.chips button.active{color:#f5f8ff;background:#18243a;border-color:#7191b7}.chips button.active{box-shadow:inset 0 0 0 1px #91e9ff22}.chips i{border-radius:50%;width:6px;height:6px;box-shadow:0 0 6px}.chips small{color:#74849f;font-size:11px}.search-results{padding-bottom:12px}.result-grid,.neighbor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.result-grid button,.neighbor-grid button{cursor:pointer;background:#0b1425;border:1px solid #27334b;border-radius:9px;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;min-width:0;height:64px;padding:9px 11px;display:flex}.result-grid button:hover,.neighbor-grid button:hover{background:#16233a;border-color:#6e94b5;transform:translateY(-1px)}.result-grid span,.neighbor-grid span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 3px;font:500 16px/1.1 IBM Plex Mono,Noto Sans JP,monospace;overflow:hidden}.result-grid small,.neighbor-grid small{color:#7d8ca7;font:11px IBM Plex Mono,monospace}.detail-panel{flex:1;min-height:0;padding:28px 24px 20px;overflow-y:auto}.selected-heading{min-width:0;padding:2px 0 5px}.selected-heading span{color:var(--accent);letter-spacing:.09em;font:13px IBM Plex Mono,monospace}.selected-heading h1{overflow-wrap:anywhere;text-wrap:balance;margin:13px 0 9px;font:600 34px/1.22 IBM Plex Mono,Noto Sans JP,monospace}.selected-heading p{color:#93a2ba;margin:0;font-size:15px}dl{background:#26324a;border:1px solid #26324a;border-radius:7px;grid-template-columns:repeat(3,1fr);gap:1px;margin:20px 0 0;display:grid;overflow:hidden}dl div{background:#0c1424;min-width:0;padding:12px}dt{color:#6d7e99;letter-spacing:.09em;margin-bottom:8px;font:10px IBM Plex Mono,monospace}dd{text-overflow:ellipsis;color:#d3dced;white-space:nowrap;margin:0;font:14px IBM Plex Mono,monospace;overflow:hidden}.near-title{margin-top:25px}.neighbor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.neighbor-grid button{height:70px}.neighbor-grid span{font-size:12px}.empty-state{text-align:center;color:#8695ad;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:300px;padding:28px 10px;display:flex}.empty-state>svg{color:#7ddff3;filter:drop-shadow(0 0 9px #7ddff3);stroke-width:1.6px;width:32px;height:32px;margin-bottom:16px}.empty-state h1{color:#d5deed;margin:0 0 16px;font-size:23px;font-weight:500}.empty-state p{max-width:340px;margin:0;font-size:16px;line-height:1.85}.empty-state p+p{margin-top:13px}@media (width<=800px){.atlas{display:block}.map-wrap{width:100%;height:100%}.map-header{padding:18px}.data-state{display:none}.map-actions{bottom:58px;left:16px}.map-actions span{display:none}.side-panel{border-left:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0;width:auto;height:min(48dvh,390px);transition:transform .32s cubic-bezier(.2,.75,.2,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(calc(100% - 50px))}.side-panel.open{transform:translateY(0)}.panel-handle{z-index:3;cursor:pointer;background:0 0;border:0;width:54px;height:12px;margin:0 auto -7px;display:block;position:relative}.panel-handle:after{content:"";background:#52617c;border-radius:3px;width:32px;height:3px;margin:7px auto;display:block}.panel-close{z-index:2;color:#aebbd0;cursor:pointer;background:#0d1628;border:1px solid #34415c;border-radius:8px;place-items:center;width:32px;height:32px;padding:0;position:absolute;top:12px;right:12px}.panel-close svg{width:17px;height:17px}.side-panel.open .panel-close{display:grid}.search-wrap{padding:1px 12px 5px}.side-panel.open .search-wrap{padding-right:54px}.search-box{height:39px}.random-button{display:none}.script-filter{padding:10px 12px 12px}.script-filter .section-title{margin-bottom:9px}.chips{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips button{height:32px;padding:0 11px}.chips small,.empty-state p+p{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}}
