:root{--bacon-primary:#e27b36;--bacon-dark:#8b4513;--bacon-light:#ffb38a;--bacon-accent:#ff7043;--bacon-bg-light:#fff5ee;--bacon-shadow:#8b451326;--text-primary:#2d2d2d;--text-secondary:#666}body{background-color:#fff;font-family:Arial,sans-serif;margin:0;overflow:hidden;padding:0}.layout{display:flex;flex-direction:column;min-height:100vh}.main-content{display:flex;flex:1 1;flex-direction:column}.header{background:#fff;height:50px;left:0;position:fixed;right:0;top:0;z-index:1000}.main-nav ul{display:flex;list-style-type:none;margin:0;padding:0}.main-nav li{margin-left:20px}.main-nav a{color:#fff;font-weight:500;text-decoration:none;text-shadow:1px 1px 2px #00000080}.search-bar-container{left:0;margin:10px auto;right:0;top:0}.search-bar{border-radius:25px;overflow:hidden;width:100%}.search-bar input{border:2px solid #ccc;border-radius:25px 0 0 25px;border-right:none;box-sizing:border-box;flex-grow:1;font-size:16px;height:44px;padding:10px 15px;transition:border-color .3s ease}.search-bar input:focus{border-color:#f4a460;outline:none}.search-button{align-items:center;background-color:#ccc;border-radius:0 25px 25px 0;display:flex;height:44px;justify-content:center;padding:0 10px;transition:background-color .3s ease}.music-icon{color:#666;display:inline-block;font-size:24px;line-height:1}.search-results-container{background:#fff;border-radius:0 0 8px 8px;left:0;overflow:hidden;position:absolute;right:0;top:100%;z-index:2000}.search-helper-text{align-items:center;background:#f8f8f8;color:#8b4513;color:var(--bacon-dark);display:flex;font-size:.8rem;font-weight:800;justify-content:center;padding:8px 12px}.search-suggestions{background:#fff;list-style:none;margin:0;max-height:200px;overflow-y:auto;padding:0}.search-suggestions li,.suggestion-item{text-align:left}@media (max-width:768px){.search-bar-container{width:95%}}.clear-cache-button{font-size:.9em;padding:5px 10px}.dev-link{color:#fff;font-size:.9em;text-decoration:none}.dev-link:hover{text-decoration:underline}.welcome-message{background:#fff;border-radius:24px;box-shadow:0 4px 20px #8b45130d;margin:20px auto;max-width:600px;padding:60px 20px;text-align:center}.welcome-message h1{color:#2d2d2d;color:var(--text-primary);font-size:1rem;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin-bottom:30px}.welcome-message .highlight{-webkit-text-fill-color:#0000;background:linear-gradient(120deg,#e27b36,#ff7043);background:linear-gradient(120deg,var(--bacon-primary),var(--bacon-accent));-webkit-background-clip:text;font-style:normal;font-weight:800}.welcome-message .subtitle{color:#666;color:var(--text-secondary);font-size:1.2rem;font-weight:400;line-height:1.6;margin-bottom:50px;margin-left:auto;margin-right:auto;max-width:480px}.welcome-message .credits{border-top:1px solid #8b451314;margin-top:60px;padding-top:30px}.welcome-message a{color:#e27b36;color:var(--bacon-primary);font-weight:500;position:relative;text-decoration:none;transition:all .2s ease}.welcome-message a:after{background-color:#e27b36;background-color:var(--bacon-primary);bottom:-2px;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transition:transform .3s ease;width:100%}.welcome-message a:hover:after{transform:scaleX(1)}.visualization-page{display:flex;flex-direction:column;height:calc(100vh - 70px);overflow:hidden;padding-top:50px}.visualization-content{align-items:center;display:flex;flex:1 1;flex-direction:column;overflow:hidden;padding:0 15px}.visualization-container{height:500px;margin:0 auto;max-width:600px;position:relative;width:100%;z-index:1}.visualization-container>div{bottom:0;left:0;position:absolute;right:0;top:0}.visualization-container canvas{height:100%!important;width:100%!important}.bottom-modal-content p{color:#666;font-size:.9rem;margin:5px 0}.bottom-modal-content strong{color:#8b4513}.reset-fab{align-items:center;background-color:#e27b36cc;border:none;border-radius:50%;bottom:20px;box-shadow:0 2px 5px #0003;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;position:absolute;right:20px;transition:background-color .3s ease;width:40px;z-index:1000}.reset-fab:hover{background-color:#d2691ee6}.reset-fab svg{fill:currentColor;height:20px;width:20px}.artist-details-modal{background-color:#fff;border-radius:16px 16px 0 0;bottom:0;box-shadow:0 -2px 10px #0000001a;left:0;margin:0 auto;max-width:600px;overflow-y:auto;position:fixed;right:0;transition:transform .3s ease;width:100%;z-index:900}.artist-details-modal.contracted{height:25vh;transform:translateY(0)}.artist-details-modal.expanded{height:calc(100vh - 60px);transform:translateY(0)}.modal-header{align-items:center;background-color:#f4a460;border-radius:16px 16px 0 0;box-shadow:0 2px 4px #8b45131a;cursor:pointer;display:flex;justify-content:space-between;padding:15px 20px;position:sticky;top:0;transition:all .3s ease;z-index:1}.modal-header:hover{background-color:#e27b36}.modal-header:before{background-color:#ffffffb3;border-radius:2px;content:"";height:4px;left:50%;position:absolute;top:8px;transform:translateX(-50%);transition:background-color .3s ease;width:40px}.modal-header:hover:before{background-color:#ffffffe6}.modal-header h2{align-items:center;color:#fff;display:flex;font-size:1.2rem;gap:8px;margin:8px 0 0}.expand-text{color:#fff;font-size:.8em;font-weight:400}.expand-indicator{align-items:center;display:flex;height:20px;justify-content:center;transition:transform .3s ease;width:20px}.expand-indicator:before{border-bottom:2px solid #fff;border-right:2px solid #fff;content:"";height:8px;transform:rotate(45deg);transition:transform .3s ease;width:8px}.artist-details-modal.contracted .expand-indicator:before{transform:rotate(-135deg)}.artist-details-modal.expanded .expand-indicator:before{transform:rotate(45deg)}.modal-content{padding:10px}.artist-metadata{color:#666;font-size:.9rem;margin:5px 0}.artist-metadata .metadata-value{color:#666}p.disambiguation{font-size:.8rem;margin:0 0 10px}.artist-metadata .disambiguation{color:gray;margin-bottom:8px}.artist-relationships h3{color:#666;margin-bottom:10px;margin-top:15px}.artist-relationships ul{list-style-type:none;padding-left:0}.artist-relationships .member-item .member-name{color:#e27b36;cursor:pointer;font-weight:700;margin-right:5px}.artist-relationships .member-item .shared-members-count{color:#666;font-size:.8em}.artist-relationships .member-item .shared-members-list{font-size:.9em;margin-top:5px}.artist-relationships .member-item .shared-member{color:#333;cursor:pointer;display:inline-block;margin-bottom:5px;margin-right:10px}.artist-relationships .member-item .shared-member:hover{text-decoration:underline}.info-box{align-items:center;background-color:#f9f9f9;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:15px;padding:15px}.info-box p{flex:1 1 auto;margin:0}.info-box button{background:none;border:none;color:#007bff;cursor:pointer;font-weight:700;margin-left:10px}@media (max-width:768px){.artist-relationships .member-item{padding:8px}.artist-relationships .member-item .shared-members-list{font-size:.8em}.artist-details-modal{height:130px;max-width:none}.artist-details-modal.expanded{height:calc(100% - 60px)}.visualization-container{height:calc(100vh - 260px)!important}}@media (min-width:769px){.visualization-container{margin:0 auto;max-width:600px}}.logo-image{width:325px}.header-content{align-items:center;display:flex;justify-content:center}.alert-box{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;margin-bottom:10px}.alert-box p{color:#721c24;font-size:1rem;margin:0}.alert-link{color:#721c24;font-weight:700;text-decoration:underline}.alert-link:hover{color:#491217}.search-bar-container{margin:0 auto}.search-bar{align-items:center;display:flex}.search-input{border:1px solid #ccc;border-radius:4px 0 0 4px;flex-grow:1;font-size:16px;padding:10px}.search-button{background-color:#007bff;border:none;border-radius:0 4px 4px 0;cursor:pointer;padding:10px}.search-button:disabled{background-color:#ccc;cursor:not-allowed}.clear-cache-button{margin-top:20px}.clear-cache-container{display:flex;justify-content:center;margin-top:20px}.clear-cache-button{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 20px;transition:background-color .3s ease}.clear-cache-button:hover{background-color:#c82333}.artist-lookup-page{align-items:center;display:flex;flex-direction:column}.graph-container{display:flex;justify-content:center;margin:20px 0;max-width:600px;width:100%}.graph-container svg{height:auto;max-width:100%}.node{cursor:pointer}.node text{pointer-events:none}.artist-relationships .shared-member-link{color:#e27b36;cursor:pointer;display:inline-block;margin-right:10px;text-decoration:none;transition:color .3s ease}.artist-relationships .shared-member-link:hover{color:#d2691e;text-decoration:underline}.artist-related-groups{height:600px;margin:0 auto;max-width:600px;width:100%}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-message{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:10px 0;padding:10px;text-align:center}.loading-spinner{animation:spin 2s linear infinite;height:40px;margin-bottom:5px;width:40px}.loading-message p{color:#8b4513;font-size:14px;margin:0}@media (max-width:768px){.loading-message p{font-size:12px}.loading-spinner{height:30px;width:30px}}.spotify-loading{align-items:center;display:flex;margin-bottom:10px}.spotify-loading .loading-text:after{animation:ellipsis 1.5s infinite;content:"..."}@keyframes ellipsis{0%{content:"."}33%{content:".."}66%{content:"..."}}.groupling-lookup-wrapper{-webkit-overflow-scrolling:touch;height:100%;overflow-y:auto}.groupling-lookup-wrapper .visualization-container{touch-action:pan-x pan-y pinch-zoom}.groupling-lookup-wrapper .graph-container{touch-action:none}.artist-relationships .member-item{background-color:#f8f8f8;border-radius:8px;margin-bottom:15px;padding:10px;transition:background-color .2s ease}.artist-relationships .member-name{color:#e27b36;cursor:pointer;font-weight:700;margin-right:5px}.artist-relationships .original-label{background-color:#e27b36;border-radius:3px;color:#fff;font-size:.7em;margin-left:5px;padding:2px 4px}.artist-relationships .role-info{font-size:.8em;margin-top:5px}.artist-relationships .roles{color:#666}.artist-relationships .date-range{color:#999;font-style:italic;margin-left:5px}.view-related-groups-button{margin-bottom:15px}.view-related-groups-container{display:flex;justify-content:center;margin-bottom:15px}.view-related-groups-button{background-color:#e27b36;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;padding:10px 15px;transition:background-color .3s ease}.view-related-groups-button:hover{background-color:#d2691e}.graph-toggle-container{align-items:center;background-color:#f4a460;border-radius:30px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:center;margin:5px auto;max-width:350px;padding:5px;width:calc(100% - 32px)}.graph-toggle-switch{display:inline-block;height:34px;margin:0;position:relative;width:100%}.graph-toggle-switch input{height:0;opacity:0;width:0}.graph-toggle-slider{background-color:#8b4513;border-radius:34px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s}.graph-toggle-slider:before{background-color:#fff;border-radius:30px;bottom:2px;content:"";height:30px;left:2px;position:absolute;transition:.4s;width:48%}input:checked+.graph-toggle-slider:before{transform:translateX(108%)}.graph-toggle-labels{align-items:center;box-sizing:border-box;display:flex;font-size:16px;font-weight:700;height:100%;justify-content:space-between;padding:0 12px;pointer-events:none;position:absolute;width:100%}.graph-toggle-labels span{align-items:center;display:flex;font-size:14px;justify-content:center;padding:0 8px;text-align:center;transition:color .3s ease;white-space:nowrap;width:50%;z-index:1}.toggle-icon{height:16px;height:20px;margin-right:4px;vertical-align:middle;width:16px;width:20px}.graph-toggle-labels span:first-child{margin-left:0}.graph-toggle-labels span:first-child .toggle-icon{margin-right:5px}.graph-toggle-labels span:last-child{margin-right:15px}.graph-toggle-labels span:last-child .toggle-icon{margin-right:8px}input:checked+.graph-toggle-slider .graph-toggle-labels .active,input:checked+.graph-toggle-slider .graph-toggle-labels .active .toggle-icon{color:#fff;filter:brightness(0) saturate(100%) invert(100%) sepia(0) saturate(0) hue-rotate(93deg) brightness(103%) contrast(103%)}input:checked+.graph-toggle-slider .graph-toggle-labels .inactive,input:checked+.graph-toggle-slider .graph-toggle-labels .inactive .toggle-icon{color:#8b4513;filter:brightness(0) saturate(100%) invert(22%) sepia(57%) saturate(681%) hue-rotate(346deg) brightness(92%) contrast(95%)}input:not(:checked)+.graph-toggle-slider .graph-toggle-labels .active,input:not(:checked)+.graph-toggle-slider .graph-toggle-labels .active .toggle-icon{color:#fff;filter:brightness(0) saturate(100%) invert(100%) sepia(0) saturate(0) hue-rotate(93deg) brightness(103%) contrast(103%)}input:not(:checked)+.graph-toggle-slider .graph-toggle-labels .inactive,input:not(:checked)+.graph-toggle-slider .graph-toggle-labels .inactive .toggle-icon{color:#8b4513;filter:brightness(0) saturate(100%) invert(22%) sepia(57%) saturate(681%) hue-rotate(346deg) brightness(92%) contrast(95%)}.graph-toggle-expand{align-items:center;background-color:#8b4513;border:none;border-radius:34px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:700;height:34px;justify-content:center;transition:background-color .3s ease;width:350px}.graph-toggle-expand:hover{background-color:sienna}@media (max-width:480px){.graph-toggle-container,.graph-toggle-switch{width:400px}}.active-artist-header{justify-content:space-between;margin:0 auto}.active-artist-name{margin-right:auto}.search-bar-collapsed{align-items:center;background:#f4a460;border-radius:25px;cursor:pointer;display:flex;margin-left:15px;padding:6px;transition:all .3s ease;width:fit-content}.search-bar-collapsed .search-button{align-items:center;background:none;border:none;cursor:pointer;display:flex;justify-content:center;padding:4px}.search-bar-collapsed .search-button .music-icon{color:#fff;font-size:24px}.search-bar-collapsed:hover{background:#e27b36;box-shadow:0 2px 6px #0003;transform:translateY(-1px)}.search-bar-collapsed .active-artist-name{display:none}.graph-toggle-container.disabled{opacity:1}.graph-toggle-container.disabled .disabled-text{cursor:not-allowed;opacity:.5}.graph-toggle-container.disabled input:checked+.graph-toggle-slider:before{cursor:not-allowed}.graph-toggle-container.disabled .graph-toggle-expand{background-color:#ccc;cursor:not-allowed}.graph-toggle-container.disabled:hover .graph-toggle-expand{background-color:#ccc}.disambiguation{color:#666;font-size:.9rem;margin:0 0 10px}.disambiguation strong{color:#333;font-size:1.2rem;margin-right:4px}.graph-toggle-container{background:linear-gradient(145deg,#f4a460,#e27b36);transition:transform .3s ease,box-shadow .3s ease}.graph-toggle-container:not(.disabled):hover{box-shadow:0 4px 12px #8b451333;transform:translateY(-1px)}.modal-header{background:linear-gradient(145deg,#f4a460,#e27b36);transition:transform .2s ease}.modal-header:hover{background:linear-gradient(145deg,#e27b36,#d2691e);transform:translateY(-1px)}.member-item{background:linear-gradient(145deg,#fff,#f8f8f8);transition:transform .2s ease,box-shadow .2s ease}.member-item:hover{box-shadow:0 4px 12px #8b45131a;transform:translateY(-2px)}.search-bar-collapsed{background:linear-gradient(145deg,#f4a460,#e27b36);transition:transform .3s ease,box-shadow .3s ease}.search-bar-collapsed:hover{background:linear-gradient(145deg,#e27b36,#d2691e);box-shadow:0 6px 16px #8b451333;transform:translateY(-2px)}.view-related-groups-button{background:linear-gradient(145deg,#e27b36,#d2691e);transition:transform .2s ease,box-shadow .2s ease}.view-related-groups-button:hover{box-shadow:0 4px 12px #8b451333;transform:translateY(-1px)}.artist-tabs{border-bottom:2px solid #e27b36;display:flex;gap:0;margin:15px 0 20px;padding:4px 4px 0;position:relative}.tab-button{background:none;border:none;border-radius:8px 8px 0 0;color:#666;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;padding:12px 20px;position:relative;transition:all .3s ease}.tab-button.active{background:#e27b36;color:#fff;font-weight:600;margin-bottom:-2px}.tab-button:hover:not(.active){background:#fff0e0;color:#8b4513}.tab-button.active:after,.tab-button:after{display:none}.grouplings-container{box-sizing:border-box;height:100%;padding:10px}@media (max-width:768px){.grouplings-container{padding:15px}}.graph-toggle-container.disabled .disabled-option{opacity:.5;position:relative;text-decoration:line-through}.graph-toggle-container.disabled .disabled-option:after{background:#8b45131a;border-radius:15px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.graph-toggle-container.disabled .disabled-option .toggle-icon{opacity:.5}.error-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:3000}.error-modal{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0003;max-width:90%;padding:20px;text-align:center;width:300px}.error-modal p{color:#333;font-size:1rem;margin:0 0 15px}.error-modal button{background:#e27b36;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:8px 24px;transition:background-color .3s ease}.error-modal button:hover{background:#d2691e}.welcome-content{padding:80px 20px 40px}.visualization-header{background:#f2f2f2;box-shadow:0 4px 4px #8b45131a;margin-bottom:5px;margin-top:5px;padding:15px;position:relative;width:100%;z-index:100}.active-artist-header{align-items:center;display:flex;max-width:600px;padding:0}.active-artist-name{align-items:center;color:#8b4513;display:flex;flex:1 1;font-size:1.5rem;font-weight:700;min-width:0;overflow:hidden;padding-right:15px;text-overflow:ellipsis;white-space:nowrap}.search-bar-container{margin-top:7px;max-width:600px;position:absolute;width:90%;z-index:1500}.search-bar-collapsed{height:32px;margin-left:auto;width:32px}@media (max-width:768px){.search-bar-container{width:95%}.search-bar,.search-bar input{width:100%}}.home-logo{display:flex;justify-content:center;margin:0;padding:0;width:100%}.home-page{min-height:100vh;padding:0 20px}.home-page .welcome-content{flex:1 1;padding:0;text-align:center}.home-page .welcome-content h1{color:#2d2d2d;color:var(--text-primary);font-size:2rem;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin-bottom:30px;margin-top:0}.home-page .welcome-content .subtitle{color:#666;color:var(--text-secondary);font-size:1rem;font-weight:400;line-height:1.6;margin-bottom:40px;margin-left:auto;margin-right:auto;max-width:480px}.home-page .search-bar{margin:0 auto;width:100%}.home-page .search-bar-container{margin:0 auto;max-width:600px}.highlight{color:#e27b36;color:var(--bacon-primary);font-weight:inherit}.highlight,.strikethrough{display:inline;position:relative}.strikethrough:after{background-color:#8b4513;background-color:var(--bacon-dark);content:"";height:5px;left:0;position:absolute;right:0;top:50%;transform:rotate(-10deg)}.home-page{background:#fff;display:flex;flex-direction:column;min-height:calc(100vh - 60px);padding:60px 20px 0}.welcome-content{flex:1 1;margin:0 auto;max-width:600px;padding-bottom:40px;text-align:center}.tutorial-modal-overlay{align-items:center;background-color:#000000bf;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:9999999}.tutorial-modal{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;display:flex;flex-direction:column;max-height:90vh;max-width:500px;position:relative;width:100%}.tutorial-modal-header{border-bottom:1px solid #e5e7eb;flex-shrink:0;padding:5px 20px}.tutorial-modal-title{align-items:center;color:#111827;display:flex;font-size:24px;font-weight:600;margin-bottom:8px}.tutorial-modal-subtitle{color:#6b7280;font-size:14px}.tutorial-modal-body{flex-grow:1;overflow-y:auto;padding:5px 10px}.tutorial-modal-section{margin-bottom:20px}.tutorial-modal-section-title{color:#111827;font-size:16px;font-weight:600;margin-bottom:8px}.tutorial-modal-text{color:#4b5563;font-size:14px;line-height:1.5}.tutorial-modal-example-container{background-color:#f8f8f8;border-radius:8px;margin-top:8px;padding:12px}.tutorial-modal-search-row{align-items:center;display:flex;gap:12px}.tutorial-modal-search-example{background-color:#f4a460;border-radius:20px;padding:6px;width:fit-content}.tutorial-modal-search-icon{filter:brightness(0) invert(1);height:28px;width:28px}.tutorial-modal-toggle-example{background-color:#f4a460;border-radius:30px;display:flex;justify-content:space-between;margin:8px 0;padding:4px;width:280px}.tutorial-modal-toggle-option{align-items:center;border-radius:20px;display:flex;font-size:14px;gap:8px;padding:6px 12px}.tutorial-modal-toggle-icon{filter:brightness(0) invert(1);height:16px;width:16px}.tutorial-modal-views-container{display:flex;gap:16px;margin-top:12px}.tutorial-modal-view-box{flex:1 1}.tutorial-modal-footer{align-items:center;background-color:#f9fafb;border-radius:0 0 12px 12px;border-top:1px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:space-between;padding:5px 10px}.tutorial-modal-button-secondary{background:none;border:none;color:#6b7280;cursor:pointer;font-size:14px;padding:8px 12px;transition:color .2s}.tutorial-modal-button-secondary:hover{color:#374151}.tutorial-modal-button-primary{background-color:#2563eb;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.tutorial-modal-button-primary:hover{background-color:#1d4ed8}.tutorial-modal-close-button{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;cursor:pointer;display:flex;font-size:18px;justify-content:center;padding:8px;position:absolute;right:16px;top:16px;transition:all .2s}.tutorial-modal-close-button:hover{background-color:#f3f4f6;color:#4b5563}.tutorial-help-button{align-items:center;background:none;border:none;cursor:pointer;display:flex;margin-left:8px;padding:4px;transition:transform .2s ease}.tutorial-help-button:hover{transform:scale(1.1)}.tutorial-help-button img{height:24px;width:24px}.tutorial-fab{border:2px solid #8b4513;bottom:4px;height:48px;position:fixed;right:4px;transition:all .2s ease;width:48px;z-index:1000}.tutorial-fab:hover{border-color:#6b3010}@media (max-width:768px){.tutorial-fab{height:44px;width:44px}.tutorial-fab span{font-size:20px}}.tutorial-fab-container{bottom:24px;position:fixed;right:24px;z-index:1000}.tutorial-fab{align-items:center;background:#f4a460;border:none;border-radius:50%;box-shadow:0 4px 12px #00000026;cursor:pointer;display:flex;height:56px;justify-content:center;transition:all .3s ease;width:56px}.tutorial-fab:hover{background:#e27b36;box-shadow:0 6px 16px #0003;transform:scale(1.1)}.tutorial-fab-close{align-items:center;background:#666;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:20px;justify-content:center;opacity:0;position:absolute;right:-8px;top:-8px;transform:scale(.8);transition:all .2s ease;width:20px}.tutorial-fab-container:hover .tutorial-fab-close{opacity:1;transform:scale(1)}.tutorial-fab-close:hover{background:#444}@media (max-width:768px){.tutorial-fab-container{bottom:16px;right:16px}.tutorial-fab{height:48px;width:48px}.tutorial-fab-container{bottom:calc(25vh + 24px);right:16px}.tutorial-fab{height:44px;width:44px}.tutorial-fab span{font-size:20px}.artist-details-modal.expanded~.tutorial-fab-container{bottom:24px;right:16px}.tutorial-fab-close{font-size:14px;height:24px;right:-10px;top:-10px;width:24px}}.search-button.has-results{background-color:#f4a460}.search-button.has-results .music-icon{color:#fff}.search-suggestions{background-color:#fff;border-bottom:2px solid #f4a460;border-left:2px solid #f4a460;border-radius:0 0 4px 4px;border-right:2px solid #f4a460;box-shadow:0 4px 6px #0000001a;top:calc(100% + 1px);width:100%;z-index:1000}.search-suggestions li{cursor:pointer;padding:8px 12px;transition:background-color .2s ease}.search-suggestions li:hover{background-color:#fff0e0}.home-page{position:relative}.home-search-section{height:60px;margin:0 auto;max-width:600px;width:100%}.home-page .search-bar-container{margin:20px auto;position:relative;width:100%}.home-page .search-results-container{background:#fff;left:0;position:absolute;right:0;top:100%;z-index:2000}.home-page .subtitle{position:relative;z-index:1}.home-page .logo-image{margin-bottom:20px;width:325px}.visualization-page .logo-image{margin:0;width:325px}.home-page .welcome-content{padding-top:20px}.home-page .header{height:auto;position:relative}.home-page .header-content{padding-bottom:20px;padding-top:80px}.home-page .welcome-content{margin:0 auto;max-width:600px;padding-top:0}.info-banner{background:linear-gradient(135deg,#e27b36,#ff8c42 50%,#e27b36);border-bottom:2px solid #d2691e;box-shadow:0 2px 8px #e27b3633;position:sticky;top:0;width:100%;z-index:1000}.info-banner-content{align-items:center;display:flex;gap:12px;justify-content:center;margin:0 auto;max-width:1200px;padding:16px 20px;position:relative}.info-banner-content:before{animation:banner-shine 3s ease-in-out infinite;background:linear-gradient(90deg,#0000,#ffffff1a,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes banner-shine{0%,to{transform:translateX(-100%)}50%{transform:translateX(100%)}}.banner-icon{display:inline-block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25));flex-shrink:0;font-size:1.4rem;position:relative;transform:rotate(-5deg);transition:transform .3s ease;z-index:1}.banner-icon:hover{transform:rotate(5deg) scale(1.1)}.info-text{color:#fff;font-size:.95rem;font-weight:500;line-height:1.5;position:relative;text-align:center;text-shadow:0 1px 2px #0000001a;z-index:1}.search-input:disabled{background-color:#f5f5f5;color:#999;cursor:not-allowed;opacity:.6}.search-input:disabled::placeholder{color:#bbb}.home-page .welcome-content{margin-top:40px}@media (max-width:768px){.info-banner-content{gap:10px;padding:14px 16px}.banner-icon{font-size:1.2rem}.info-text{font-size:.9rem}.home-page .welcome-content{margin-top:30px}}@media (max-width:480px){.info-banner-content{gap:8px;padding:12px}.info-text{font-size:.85rem;line-height:1.4}.home-page .welcome-content{margin-top:25px}}.home-header{display:none}@media (max-width:375px){.graph-toggle-container{max-width:300px}.graph-toggle-labels span{font-size:12px}.toggle-icon{height:14px;margin-right:2px;width:14px}.graph-toggle-slider:before{width:46%}input:checked+.graph-toggle-slider:before{transform:translateX(115%)}}@media (max-width:320px){.graph-toggle-container{max-width:280px}.graph-toggle-labels span{font-size:11px}}.home-footer{background:linear-gradient(145deg,#e27b36,#ff7043);background:linear-gradient(145deg,var(--bacon-primary),var(--bacon-accent));bottom:0;left:0;padding:15px 0;position:fixed;right:0;width:100%;z-index:1000}.footer-content{display:flex;flex-direction:column;gap:8px;margin:0 auto;max-width:600px;padding:0 20px;text-align:center}.footer-content p{color:#ffffffe6;font-size:.95rem;margin:0}.footer-content a{color:#fff;font-weight:500;text-decoration:none}.footer-content a:hover{text-decoration:underline}@media (max-width:768px){.home-footer{padding:12px 0}.footer-content p{font-size:.85rem}}
/*# sourceMappingURL=main.35761871.css.map*/