.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0806e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-surface);border:1px solid var(--border-medium);border-top:2px solid var(--accent-gold);border-radius:2px;max-width:600px;width:100%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 0 60px #c9a84c0f}.modal-close{position:absolute;top:1rem;right:1rem;background:var(--bg-raised);border:1px solid var(--border-medium);color:var(--text-muted);font-size:1rem;width:2rem;height:2rem;border-radius:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;z-index:10;font-family:var(--font-body)}.modal-close:hover{background:var(--accent-rust);color:var(--bg-void);border-color:var(--accent-rust);box-shadow:var(--glow-rust);transform:none}.modal-header{padding:2rem 2rem 1rem;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;color:var(--accent-gold);font-size:2rem;font-family:var(--font-display);letter-spacing:.04em;text-shadow:none}.modal-header-actions{display:flex;gap:.5rem;flex-shrink:0}.edit-band-button{background:transparent;border:1px solid var(--accent-sage);color:var(--accent-sage);padding:.4rem .8rem;border-radius:2px;font-size:.7rem;font-family:var(--font-body);font-weight:700;cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.06em}.edit-band-button:hover{background:var(--accent-sage);color:var(--bg-void);border-color:var(--accent-sage);box-shadow:none;transform:none}.delete-band-button{background:transparent;border:1px solid rgba(181,96,74,.3);color:var(--accent-rust);padding:.4rem .8rem;border-radius:2px;font-size:.7rem;font-family:var(--font-body);font-weight:700;cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.06em}.delete-band-button:hover{background:var(--accent-rust);color:var(--bg-void);border-color:var(--accent-rust);box-shadow:var(--glow-rust);transform:none}.edit-name-input{background:var(--bg-deep);border:1px solid var(--accent-gold);border-radius:2px;color:var(--accent-gold);font-size:1.6rem;font-family:var(--font-display);letter-spacing:.04em;padding:.4rem .6rem;width:100%;outline:none;text-transform:uppercase}.edit-name-input:focus{box-shadow:0 0 12px #c9a84c26}.modal-body{padding:1.5rem 2rem 2rem;color:var(--text-primary)}.band-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:2rem}.modal-body .stat-item{background:var(--bg-deep);padding:1rem;border-radius:2px;text-align:center;border-left:2px solid var(--accent-gold)}.modal-body .stat-item:nth-child(2){border-left-color:var(--accent-rust)}.modal-body .stat-item:nth-child(3){border-left-color:var(--accent-sage)}.stat-label{display:block;font-size:.65rem;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-body)}.stat-value{display:block;font-size:1.6rem;font-weight:400;font-family:var(--font-display);color:var(--accent-gold);letter-spacing:.02em}.modal-body .stat-item:nth-child(2) .stat-value{color:var(--accent-rust)}.modal-body .stat-item:nth-child(3) .stat-value{color:var(--accent-sage)}.band-detail-section{margin-bottom:1.75rem}.band-detail-section h3{margin:0 0 .75rem;color:var(--accent-rust);font-size:1.2rem;font-family:var(--font-display);letter-spacing:.06em}.detail-text{margin:0;line-height:1.6;color:var(--text-muted);font-size:.85rem}.detail-text.empty{color:var(--text-dim);font-style:italic}.edit-textarea{background:var(--bg-deep);border:1px solid var(--border-medium);border-radius:2px;color:var(--text-primary);font-size:.85rem;font-family:var(--font-body);padding:.6rem .75rem;width:100%;resize:vertical;outline:none;transition:border-color .15s ease}.edit-textarea:focus{border-color:var(--accent-gold);box-shadow:0 0 12px #c9a84c1a}.members-list{display:flex;flex-wrap:wrap;gap:.4rem}.member-tag{background:var(--bg-deep);border:1px solid var(--border-medium);border-radius:2px;padding:.3rem .6rem;font-size:.8rem;color:var(--text-primary);font-family:var(--font-body)}.links-row{display:flex;flex-wrap:wrap;gap:.5rem}.link-button{display:inline-block;background:transparent;border:1px solid var(--border-medium);border-radius:2px;padding:.4rem .85rem;font-size:.75rem;font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-decoration:none;transition:all .15s ease}.link-button:hover{color:var(--accent-gold);border-color:var(--accent-gold);box-shadow:var(--glow-gold)}.link-bandcamp:hover{color:var(--accent-gold);border-color:var(--accent-gold)}.link-spotify:hover{color:var(--accent-sage);border-color:var(--accent-sage);box-shadow:0 0 16px #7a8c6e40}.link-instagram:hover{color:var(--accent-rust);border-color:var(--accent-rust);box-shadow:var(--glow-rust)}.edit-links-grid{display:grid;gap:.6rem}.edit-link-row{display:grid;grid-template-columns:90px 1fr;gap:.5rem;align-items:center}.edit-link-row label{font-size:.7rem;font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.edit-link-row input{background:var(--bg-deep);border:1px solid var(--border-medium);border-radius:2px;color:var(--text-primary);font-size:.8rem;font-family:var(--font-body);padding:.5rem .65rem;outline:none;transition:border-color .15s ease}.edit-link-row input:focus{border-color:var(--accent-gold);box-shadow:0 0 12px #c9a84c1a}.edit-link-row input::placeholder{color:var(--text-dim);font-size:.75rem}.edit-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-bottom:2rem;padding-top:.5rem}.btn-save{background:var(--accent-gold);color:var(--bg-void);border:1px solid var(--accent-gold);padding:.5rem 1.2rem;border-radius:2px;font-size:.75rem;font-family:var(--font-body);font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:all .15s ease}.btn-save:hover:not(:disabled){box-shadow:var(--glow-gold)}.btn-save:disabled{opacity:.4;cursor:not-allowed}.btn-cancel{background:transparent;color:var(--text-muted);border:1px solid var(--border-medium);padding:.5rem 1.2rem;border-radius:2px;font-size:.75rem;font-family:var(--font-body);font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:all .15s ease}.btn-cancel:hover{border-color:var(--text-muted);color:var(--text-primary);box-shadow:none;transform:none}.connected-bands h3{margin:0 0 1rem;color:var(--accent-rust);font-size:1.2rem;font-family:var(--font-display);letter-spacing:.06em}.connected-bands-grid{display:grid;gap:.35rem}.connected-band-item{background:var(--bg-deep);padding:.65rem .85rem;border-radius:0;border-left:2px solid var(--border-medium);display:flex;justify-content:space-between;align-items:center;transition:all .12s ease;text-align:left}.connected-band-item .connected-band-info{flex:1;min-width:0}.connected-band-item:hover{border-left-color:var(--accent-gold);background:var(--bg-raised)}.connected-band-info{display:flex;flex-direction:column;gap:.2rem}.band-name{font-weight:700;font-size:.85rem;font-family:var(--font-body)}.band-name.clickable-band{color:var(--accent-gold);text-decoration:none;cursor:pointer}.band-name.clickable-band:hover{color:var(--accent-rust);text-shadow:none}.connection-type{font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-body);background:none;padding:0}.delete-connection-button{background:transparent;border:1px solid rgba(181,96,74,.2);color:var(--text-dim);width:1.4rem;height:1.4rem;border-radius:0;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;font-family:var(--font-body)}.delete-connection-button:hover{background:var(--accent-rust);color:var(--bg-void);border-color:var(--accent-rust);box-shadow:none;transform:none}@media (max-width: 768px){.modal-content{max-width:95vw;max-height:90vh}.modal-header{padding:1.5rem 1.5rem 1rem;flex-direction:column;gap:1rem;align-items:stretch}.modal-header h2{text-align:center}.modal-body{padding:1rem 1.5rem 1.5rem}.band-stats{grid-template-columns:1fr;gap:.5rem}.connected-band-item{flex-direction:column;align-items:flex-start;gap:.5rem}.connected-band-info{width:100%}}.submission-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0806e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.submission-content{background:var(--bg-surface);border:1px solid var(--border-medium);border-top:2px solid var(--accent-gold);border-radius:2px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 0 60px #c9a84c0f}.submission-close{position:absolute;top:1rem;right:1rem;background:var(--bg-raised);border:1px solid var(--border-medium);color:var(--text-muted);font-size:1rem;width:2rem;height:2rem;border-radius:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;z-index:10;font-family:var(--font-body)}.submission-close:hover{background:var(--accent-rust);color:var(--bg-void);border-color:var(--accent-rust);box-shadow:var(--glow-rust);transform:none}.submission-header{padding:2rem 2rem 1rem;border-bottom:1px solid var(--border-subtle);text-align:left}.submission-header h2{margin:0 0 .25rem;color:var(--accent-gold);font-size:1.8rem;font-family:var(--font-display);letter-spacing:.04em;text-shadow:none}.submission-header p{margin:0;color:var(--text-muted);font-size:.8rem;letter-spacing:.04em}.submission-form{padding:1.5rem 2rem 2rem;color:var(--text-primary)}.form-section{margin-bottom:1.75rem}.form-section h3{margin:0 0 .75rem;color:var(--accent-rust);font-size:1.1rem;font-family:var(--font-display);letter-spacing:.06em}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}.form-row input,.form-section select,.form-section textarea{background:var(--bg-deep);border:1px solid var(--border-medium);border-radius:2px;padding:.7rem .85rem;color:var(--text-primary);font-size:.85rem;font-family:var(--font-body);transition:all .15s ease;width:100%}.form-row input::placeholder,.form-section textarea::placeholder{color:var(--text-dim);font-size:.8rem}.form-row input:focus,.form-section select:focus,.form-section textarea:focus{outline:none;border-color:var(--accent-gold);box-shadow:0 0 12px #c9a84c1a}.form-section select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23918578' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}.form-section select option{background:var(--bg-surface);color:var(--text-primary)}.form-section textarea{resize:vertical;min-height:80px}.message{padding:.85rem 1rem;border-radius:2px;margin-bottom:1.5rem;font-weight:700;font-size:.8rem;letter-spacing:.04em}.message.success{background:#7a8c6e1a;border:1px solid rgba(122,140,110,.25);color:var(--accent-sage)}.message.error{background:#b5604a1a;border:1px solid rgba(181,96,74,.25);color:var(--accent-rust)}.form-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn-primary,.btn-secondary{padding:.65rem 1.5rem;border-radius:2px;border:none;font-size:.8rem;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.06em}.btn-primary{background:var(--accent-gold);color:var(--bg-void);border:1px solid var(--accent-gold)}.btn-primary:hover:not(:disabled){box-shadow:var(--glow-gold);transform:none}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--text-muted);border:1px solid var(--border-medium)}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text-primary);box-shadow:none;transform:none}@media (max-width: 768px){.submission-content{max-width:95vw;max-height:95vh}.submission-header{padding:1.5rem 1.5rem 1rem}.submission-form{padding:1rem 1.5rem 1.5rem}.form-row{grid-template-columns:1fr;gap:.5rem}.form-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}.App{text-align:center;min-height:100vh;display:flex;flex-direction:column;background:var(--bg-void);color:var(--text-primary);position:relative}.App-header{padding:1.5rem 2rem;background:var(--bg-deep);border-bottom:1px solid var(--border-subtle);position:relative}.App-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-rust),var(--accent-gold),var(--accent-sage),var(--accent-rust));background-size:200% 100%;animation:marquee-shift 12s linear infinite}@keyframes marquee-shift{0%{background-position:0% 0}to{background-position:200% 0}}.App-header h1{margin:0;font-family:var(--font-display);font-size:3.5rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-cream);text-shadow:0 0 40px rgba(201,168,76,.15)}.App-header p{margin:.25rem 0 0;font-size:.8rem;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase}.header-actions{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem}.submit-button{background:transparent;color:var(--accent-gold);border:1px solid var(--accent-gold);padding:.55rem 1.2rem;border-radius:2px;font-size:.8rem;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.submit-button:hover{background:var(--accent-gold);color:var(--bg-void);box-shadow:var(--glow-gold);transform:none}.App-main{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.status-section,.bands-section,.graph-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:2px;padding:2rem;margin-bottom:2rem;position:relative}.status-section h2,.bands-section h2,.graph-section h2{margin-top:0;font-size:2rem;margin-bottom:1.5rem;font-family:var(--font-display);letter-spacing:.06em;color:var(--accent-cream)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1rem}.stat-item{background:var(--bg-deep);padding:1.25rem;border-radius:2px;text-align:center;border-left:2px solid var(--accent-gold);transition:border-color .2s ease}.stat-item:nth-child(2){border-left-color:var(--accent-rust)}.stat-item:nth-child(3){border-left-color:var(--accent-sage)}.stat-item h3{margin:0 0 .5rem;font-size:.7rem;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-weight:400}.stat-item p{margin:0;font-size:2.2rem;font-weight:400;font-family:var(--font-display);color:var(--accent-gold);letter-spacing:.02em}.stat-item:nth-child(2) p{color:var(--accent-rust)}.stat-item:nth-child(3) p{color:var(--accent-sage)}.view-tabs{display:flex;justify-content:center;gap:0;margin-bottom:2rem}.tab-button{background:var(--bg-surface);border:1px solid var(--border-medium);color:var(--text-muted);padding:.7rem 2rem;border-radius:0;cursor:pointer;font-size:.8rem;font-weight:700;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;transition:all .15s ease;position:relative}.tab-button:first-child{border-right:none}.tab-button:hover{color:var(--text-primary);background:var(--bg-raised);box-shadow:none}.tab-button.active{color:var(--accent-gold);background:var(--bg-raised);border-color:var(--accent-gold);box-shadow:inset 0 -2px 0 var(--accent-gold)}.graph-description{text-align:center;margin-top:1.5rem;margin-bottom:0;color:var(--text-muted);font-size:.85rem;font-style:normal;letter-spacing:.02em}.graph-description strong{color:var(--accent-rust)}.graph-container{min-height:600px;background:var(--bg-void);border:1px solid var(--border-subtle);border-radius:2px;padding:0}.force-graph-container{position:relative;width:100%;min-height:600px}.force-graph-container svg{border-radius:2px;background:var(--bg-void);display:block}.bands-list{list-style:none;padding:0;margin:0}.band-item{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;margin-bottom:.35rem;background:var(--bg-deep);border-radius:0;border-left:2px solid var(--border-medium);transition:all .12s ease}.band-item.clickable{cursor:pointer}.band-item.clickable:hover{border-left-color:var(--accent-gold);background:var(--bg-raised);padding-left:1.25rem;transform:none}.band-info{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.band-info strong{font-size:.95rem;font-family:var(--font-body);font-weight:700;color:var(--text-primary)}.band-item.clickable:hover .band-info strong{color:var(--accent-gold)}.band-date,.band-clicks{font-size:.7rem;color:var(--text-dim);letter-spacing:.04em}.band-connections{font-size:.75rem;color:var(--text-muted);font-weight:700;font-family:var(--font-body);letter-spacing:.04em}.error{color:var(--accent-rust);font-weight:700}.success{color:var(--accent-sage);font-weight:700}.App-footer{padding:1.25rem;background:var(--bg-deep);border-top:1px solid var(--border-subtle)}.footer-links{margin-bottom:.5rem;display:flex;justify-content:center;align-items:center;gap:.5rem}.footer-link{color:var(--text-muted);text-decoration:none;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;transition:color .15s ease}.footer-link:hover{color:var(--accent-gold)}.footer-divider{color:var(--border-medium);font-size:.7rem}.App-footer p{margin:0;color:var(--text-dim);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.footer-credit{color:var(--text-muted);text-decoration:none;transition:color .15s ease}.footer-credit:hover{color:var(--accent-gold)}@media (max-width: 768px){.App-header h1{font-size:2.2rem}.App-header{padding:1rem}.header-actions{flex-direction:column}.submit-button{width:100%}.App-main{padding:1rem}.band-item{flex-direction:column;align-items:flex-start;gap:.5rem}.stats-grid{grid-template-columns:1fr}.view-tabs{flex-direction:column;align-items:stretch}.tab-button:first-child{border-right:1px solid var(--border-medium);border-bottom:none}.graph-container{min-height:400px}}:root{--bg-void: #1a1714;--bg-deep: #211e1a;--bg-surface: #2a2622;--bg-raised: #33302b;--bg-hover: #3d3935;--accent-gold: #c9a84c;--accent-rust: #b5604a;--accent-sage: #7a8c6e;--accent-cream: #e8dcc8;--glow-gold: 0 0 16px rgba(201, 168, 76, .25);--glow-rust: 0 0 16px rgba(181, 96, 74, .25);--text-primary: #e0d6c8;--text-muted: #918578;--text-dim: #665e55;--border-subtle: #33302b;--border-medium: #443f39;--font-display: "Bebas Neue", "Impact", "Arial Narrow", sans-serif;--font-body: "Space Mono", "Courier New", monospace;font-family:var(--font-body);line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--bg-void);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-void);overflow-x:hidden}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px}#root{width:100%;margin:0 auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;line-height:1.1}button{border-radius:2px;border:1px solid var(--border-medium);padding:.6em 1.2em;font-size:1em;font-weight:700;font-family:var(--font-body);background-color:var(--bg-raised);color:var(--text-primary);cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.04em;font-size:.85em}button:hover{border-color:var(--accent-gold);box-shadow:var(--glow-gold)}button:focus,button:focus-visible{outline:1px solid var(--accent-gold);outline-offset:2px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--accent-gold)}::selection{background:#c9a84c4d;color:#fff}
