@import"https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&display=swap";.kpop-root{font-family:Quicksand,-apple-system,sans-serif;background:#fff;color:#1a1a2e;position:relative;overflow:hidden}.kpop-root *{box-sizing:border-box}.kpop-bggrid{position:absolute;inset:0;background-image:radial-gradient(circle,#e2e2e2 .6px,transparent .6px);background-size:28px 28px;opacity:.4;pointer-events:none;z-index:0}.kpop-header{position:relative;z-index:1;padding:28px 32px 0}.kpop-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.kpop-dot{width:6px;height:6px;border-radius:50%;background:#e63946;box-shadow:0 0 8px #e6394666}.kpop-title-row h1{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#888;margin:0}.kpop-range{font-size:10px;color:#bbb;letter-spacing:.1em;margin-left:auto}.kpop-year-row{margin-top:14px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.kpop-year{font-size:76px;font-weight:700;color:#1a1a2e;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.kpop-meta{display:flex;flex-direction:column;gap:4px}.kpop-total-label{font-size:13px;color:#777}.kpop-total{color:#1a1a2e;font-weight:700}.kpop-caption{font-size:11px;color:#e63946;font-weight:500;max-width:460px;line-height:1.45;min-height:30px}.kpop-main{position:relative;z-index:1;display:flex;padding:8px 12px 0;gap:0;flex-wrap:wrap;justify-content:center}.kpop-map-wrap{flex-shrink:0}.kpop-map-wrap svg{overflow:visible}.kpop-rank-wrap{flex:1;min-width:270px;max-width:370px;padding:12px 8px}.kpop-rank-title{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#aaa;margin-bottom:12px;font-weight:700}.kpop-rank-row{display:flex;align-items:center;gap:6px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .2s}.kpop-rank-row:hover,.kpop-rank-row.active{background:#f7f7f7}.kpop-rank-num{width:18px;font-size:10px;color:#ccc;font-weight:400;text-align:right;font-variant-numeric:tabular-nums}.kpop-rank-num.top{color:#e63946;font-weight:800}.kpop-rank-swatch{width:6px;height:14px;border-radius:2px;opacity:.85}.kpop-rank-name{flex:1;font-size:11px;color:#555;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpop-rank-row.active .kpop-rank-name{color:#1a1a2e;font-weight:700}.kpop-rank-bar{width:90px;height:14px;background:#f0f0f0;border-radius:3px;overflow:hidden}.kpop-rank-bar-fill{height:100%;border-radius:3px;opacity:.78;transition:width .4s ease}.kpop-rank-row.active .kpop-rank-bar-fill{opacity:1}.kpop-rank-val{width:50px;font-size:10px;color:#999;text-align:right;font-variant-numeric:tabular-nums}.kpop-rank-row.active .kpop-rank-val{color:#1a1a2e;font-weight:700}.kpop-detail{margin-top:16px;padding:14px 16px;background:#fafafa;border-radius:10px}.kpop-detail-header{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.kpop-detail-name{font-size:15px;font-weight:700}.kpop-detail-region{font-size:9px;font-weight:700;padding:1px 6px;border-radius:8px}.kpop-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;font-size:11px}.kpop-detail-grid .label{color:#aaa}.kpop-detail-grid .val{font-variant-numeric:tabular-nums}.kpop-detail-grid .val.bold{font-weight:600}.kpop-detail-grid .val.pos{color:#2d9a4e;font-weight:700}.kpop-detail-grid .val.neg,.kpop-detail-grid .val.rank-top{color:#e63946;font-weight:700}.kpop-legend{margin-top:14px;padding:12px 14px;border-radius:8px;border:1px solid #eee}.kpop-legend-title{font-weight:700;color:#888;margin-bottom:8px;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.kpop-legend-row{display:flex;align-items:center;gap:8px;padding:3px 0}.kpop-legend-swatch{width:10px;height:10px;border-radius:2px}.kpop-legend-region{font-size:11px;color:#555;font-weight:600;min-width:78px}.kpop-legend-members{font-size:9px;color:#aaa}.kpop-legend-note{margin-top:10px;padding-top:10px;border-top:1px solid #f0f0f0;font-size:10px;color:#999;line-height:1.5}.kpop-timeline{position:relative;z-index:1;padding:10px 32px 14px;border-top:1px solid #f0f0f0}#kpop-slider{width:100%;height:4px;appearance:none;border-radius:2px;outline:none;cursor:pointer;background:linear-gradient(90deg,#e63946,#eee 0%)}#kpop-slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:#e63946;cursor:pointer;box-shadow:0 1px 6px #e6394640;border:2.5px solid #fff}#kpop-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#e63946;cursor:pointer;box-shadow:0 1px 6px #e6394640;border:2.5px solid #fff}.kpop-decades{display:flex;justify-content:space-between;margin-top:6px}.kpop-decades span{font-size:9px;font-weight:600;color:#ccc;cursor:pointer;font-variant-numeric:tabular-nums;transition:color .3s}.kpop-decades span.reached{color:#e63946}.kpop-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px}.kpop-btn-play{background:#f7f7f7;border:1.5px solid #e0e0e0;color:#555;padding:6px 22px;border-radius:8px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;letter-spacing:.06em;transition:all .2s}.kpop-btn-play.playing{background:#e639460f;border-color:#e6394640;color:#e63946}.kpop-speed{display:flex;align-items:center;gap:6px}.kpop-speed-label{font-size:10px;color:#bbb;letter-spacing:.08em;font-weight:600}.kpop-speed-btn{background:transparent;border:1px solid #e8e8e8;color:#bbb;padding:3px 10px;border-radius:5px;font-size:10px;cursor:pointer;font-family:inherit;font-variant-numeric:tabular-nums;font-weight:600;transition:all .2s}.kpop-speed-btn.active{background:#e639460f;border-color:#e6394633;color:#e63946}.kpop-sources{position:relative;z-index:1;padding:14px 32px 24px;border-top:1px solid #f5f5f5;background:#fafafa;font-size:10px;color:#888;line-height:1.7}.kpop-sources-title{font-weight:700;color:#555;margin-bottom:6px;letter-spacing:.12em;text-transform:uppercase;font-size:9px}.kpop-sources strong{color:#444}.kpop-sources a{color:#4a7bc8;text-decoration:none}.kpop-sources-note{margin-top:4px;color:#bbb}#kpop-labels text{pointer-events:none;paint-order:stroke;stroke:#0000008c;stroke-width:2.5;stroke-linejoin:round;letter-spacing:-.01em;font-family:Quicksand,sans-serif;font-weight:700;fill:#fff}#kpop-shapes path{cursor:pointer}
