@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.login{position:fixed;top:0;left:0;width:100%;height:100%;overflow:hidden;background:transparent;cursor:pointer}.login__content{position:relative;width:100%;height:100%;z-index:1}.login__title-wrapper{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-sm);transition:top 1.5s cubic-bezier(.4,0,.2,1)}.login__title-wrapper--shifted{top:42%}.login__info-link{font-family:Cormorant Garamond,Georgia,serif;font-size:.8rem;font-weight:400;letter-spacing:.1em;color:var(--color-text-muted);opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .3s ease,transform .3s ease,color .2s ease}.login__info-link--visible{opacity:1;transform:translateY(0);pointer-events:auto}.login__info-link:hover{color:var(--color-text-secondary)}.login__title{position:relative;z-index:5;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(3rem,10vw,5rem);font-weight:300;letter-spacing:.3em;color:#f0f0f5;text-shadow:0 0 60px rgba(200,220,255,.15);margin-right:-.3em;cursor:pointer;transition:text-shadow .3s ease;opacity:0;animation:scaleIn .6s ease forwards;animation-delay:.35s}.login__title:hover{text-shadow:0 0 80px rgba(200,220,255,.25)}.login__orbit-particle{position:absolute;width:8px;height:8px;background:radial-gradient(circle,rgba(220,230,255,1) 0%,rgba(180,200,255,.8) 40%,transparent 70%);border-radius:50%;box-shadow:0 0 12px #c8dcffe6,0 0 24px #c8dcff80,0 0 36px #c8dcff40;pointer-events:none;transform:translate(-50%,-50%);z-index:10;transition:opacity .15s ease}.login__etymology{position:absolute;top:calc(50% + 60px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--spacing-sm);font-size:.8rem;color:var(--color-text-muted);white-space:nowrap;transition:top 1.5s cubic-bezier(.4,0,.2,1)}.login__etymology--shifted{top:calc(42% + 50px)}.login__etymology-word{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:.95rem;color:var(--color-text-secondary);line-height:1;opacity:0;animation:fadeIn .6s forwards;animation-delay:1.5s}.login__etymology-divider{opacity:0;animation:fadeIn .6s forwards;animation-delay:1.5s}.login__etymology-meaning{font-family:Instrument Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.75rem;letter-spacing:.02em;line-height:1;opacity:0;animation:fadeIn .6s forwards;animation-delay:1.5s}.login__form{position:absolute;top:calc(42% + 100px);left:50%;transform:translate(-50%) translateY(20px);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);width:340px;opacity:0;pointer-events:none;transition:all 1.5s cubic-bezier(.4,0,.2,1);cursor:default}.login__form--visible{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.login__input-group{display:flex;align-items:center;width:100%;background:#464b9614;border:1px solid rgba(70,75,150,.2);border-radius:var(--radius-full);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden;transition:all .3s ease;box-shadow:0 0 10px #464b960d,0 4px 20px #0003}.login__input-group:focus-within{border-color:#1db95466;box-shadow:0 0 25px #1db95426,0 4px 20px #00000040}.login__input{flex:1;padding:var(--spacing-md) var(--spacing-lg);font-size:.9rem;font-family:Instrument Sans,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--color-text-primary);background:transparent;border:none;transition:all var(--transition-fast)}.login__input::placeholder{color:var(--color-text-muted)}.login__input:focus{outline:none}.login__input-group__button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;margin:4px 8px 4px 4px;font-family:Instrument Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.85rem;font-weight:500;color:var(--color-text-primary);background:#ffffff0d;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease}.login__input-group__button:hover{background:#ffffff1f;color:#fff}.login__input-group__button:active{transform:scale(.97)}.login__input-group__button:disabled{opacity:.5;cursor:not-allowed}.login__error{font-family:Instrument Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.8rem;color:#ff6b6b;text-align:center}.login__hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);font-family:Instrument Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.85rem;color:#a0a0b066;letter-spacing:.05em;pointer-events:none;opacity:0;animation:fadeIn .6s ease forwards;animation-delay:2s;transition:opacity .3s ease}.login__hint--hidden{opacity:0!important}@media (max-width: 768px){.login__title-wrapper--shifted{top:30%}.login__etymology--shifted{top:calc(30% + 50px)}.login__form{top:calc(30% + 110px);width:90%;max-width:320px;padding:0 var(--spacing-md)}.login__input-group{border-radius:var(--radius-lg)}.login__input{min-height:48px;font-size:1rem;padding:var(--spacing-sm) var(--spacing-md)}.login__input-group__button{width:44px;height:44px}.login__input-group__button svg{width:18px;height:18px}.login__input-group__button:hover{background:#ffffff0d}.login__input-group__button:hover svg{transform:none}.login__input-group__button:active{background:#1db95440;transform:scale(.97)}.login__hint{bottom:max(2rem,env(safe-area-inset-bottom))}}@media (max-width: 480px){.login__title{letter-spacing:.2em;margin-right:-.2em}.login__etymology{flex-direction:column;gap:var(--spacing-xs)}.login__etymology-divider{display:none}.login__form{width:100%;padding:0 var(--spacing-lg)}}@keyframes whiteGlowPulse{0%{text-shadow:0 0 5px rgba(0,255,0,.6),0 0 10px rgba(25,201,98,.4)}to{text-shadow:0 0 10px rgba(30,255,0,.9),0 0 25px rgba(0,105,42,.6)}}.word-glow{color:#fff;animation:whiteGlowPulse 1.5s ease-in-out infinite alternate}.info{height:100%;width:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:transparent}.info__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--spacing-2xl);gap:var(--spacing-xl)}.info__back{font-family:Instrument Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.85rem;font-weight:400;letter-spacing:.05em;color:var(--color-text-muted);transition:color var(--transition-fast);opacity:0;animation:fadeInUp .6s ease forwards;animation-delay:.1s}.info__back:hover{color:var(--color-text-secondary)}.info__title{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2rem,6vw,3rem);font-weight:300;letter-spacing:.2em;color:#f0f0f5;margin-right:-.2em;opacity:0;animation:fadeInUp .6s ease forwards;animation-delay:.2s}.info__body{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-md);max-width:480px;opacity:0;animation:fadeInUp .6s ease forwards;animation-delay:.35s}.info__text{font-family:var(--font-primary);font-size:.95rem;font-weight:300;line-height:1.7;letter-spacing:.02em;color:var(--color-text-secondary);margin:0}@media (max-width: 768px){.info__content{padding:var(--spacing-xl);gap:var(--spacing-lg)}.info__body{max-width:320px;padding:0 var(--spacing-md)}.info__text{font-size:.9rem}.info__text:first-child{font-size:1rem}}@keyframes breathe{0%,to{opacity:.15;transform:translate(-50%,-50%) scale(1)}50%{opacity:.25;transform:translate(-50%,-50%) scale(1.1)}}@keyframes orbitPulse{0%,to{stroke-opacity:.12}50%{stroke-opacity:.18}}@keyframes titleGlow{0%,to{text-shadow:0 0 40px rgba(200,220,255,.15),0 0 80px rgba(200,220,255,.05)}50%{text-shadow:0 0 60px rgba(200,220,255,.25),0 0 100px rgba(200,220,255,.1)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loader{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}.loader__glow{position:absolute;top:50%;left:50%;width:400px;height:200px;background:radial-gradient(ellipse at center,rgba(100,120,180,.15) 0%,rgba(80,100,160,.08) 30%,transparent 70%);transform:translate(-50%,-50%);pointer-events:none;animation:breathe 6s ease-in-out infinite}.loader__orbits{position:absolute;top:48%;left:50%;width:500px;height:300px;transform:translate(-50%,-50%);pointer-events:none;overflow:visible}.loader__orbit-path{fill:none;stroke:#96aadc80;stroke-width:1;stroke-opacity:.15;animation:orbitPulse 6s ease-in-out infinite}.loader__content{position:relative;z-index:5;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg)}.loader__title{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.5rem,8vw,4rem);font-weight:300;letter-spacing:.3em;color:#f0f0f5;margin-right:-.3em;animation:fadeInUp .8s ease-out,titleGlow 5s ease-in-out infinite;animation-delay:0s,.8s}.loader__particle{position:absolute;top:48%;border-radius:50%;background:radial-gradient(circle,rgba(220,230,255,1) 0%,rgba(calc(180 + var(--particle-hue, 200) * .1),200,255,.8) 40%,transparent 70%);box-shadow:0 0 12px #c8dcffe6,0 0 24px #c8dcff80,0 0 36px #c8dcff40;pointer-events:none;transition:opacity .15s ease}.loader__progress{text-align:center;animation:fadeInUp .8s ease-out .3s both}.loader__progress-text{font-family:Instrument Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:.9rem;font-weight:400;letter-spacing:.05em;color:transparent;background:linear-gradient(90deg,var(--color-text-muted) 0%,var(--color-text-muted) 40%,var(--color-text-secondary) 50%,var(--color-text-muted) 60%,var(--color-text-muted) 100%);background-size:200% auto;background-clip:text;-webkit-background-clip:text;animation:shimmer 3s linear infinite}@media (max-width: 768px){.loader__glow{width:300px;height:150px}.loader__orbits{width:350px;height:200px}.loader__title{letter-spacing:.2em;margin-right:-.2em}.loader__progress{padding:0 var(--spacing-lg)}.loader__progress-text{font-size:.85rem}}@media (max-width: 480px){.loader__title{letter-spacing:.15em;margin-right:-.15em}}.graph-container{width:100%;height:100%;position:relative;overflow:hidden}.graph-container.cosmic-theme{background:transparent}.graph-container canvas{image-rendering:auto;-webkit-font-smoothing:antialiased}.graph-container{touch-action:none}.cluster-labels{position:absolute;top:20px;left:20px;display:flex;flex-wrap:wrap;gap:8px;max-width:320px;pointer-events:none;z-index:10}.cluster-label{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:.7rem;font-weight:500;letter-spacing:.02em;color:#ffffffd9;background:#0a0a14b3;border:1px solid rgba(255,255,255,.1);border-radius:20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:fadeInUp .5s ease forwards;opacity:0;text-transform:capitalize}.cluster-label:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cluster-color, #6366f1);box-shadow:0 0 8px var(--cluster-color, #6366f1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.node-tooltip{position:absolute;bottom:32px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;background:#080814e6;border:1px solid rgba(255,255,255,.15);border-radius:12px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:none;z-index:100;animation:tooltipAppear .25s cubic-bezier(.16,1,.3,1)}.node-tooltip.cosmic-tooltip{box-shadow:0 4px 24px #00000080,0 0 40px #6366f11a,inset 0 1px #ffffff0d}@keyframes tooltipAppear{0%{opacity:0;transform:translate(-50%) translateY(12px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.node-tooltip__name{font-size:1.1rem;font-weight:600;color:#fff;letter-spacing:-.01em}.node-tooltip__genres{font-size:.75rem;color:#ffffff80;font-family:SF Mono,Fira Code,monospace;letter-spacing:.02em}.node-tooltip__playcount{font-size:.7rem;color:#93c5fdcc;font-family:SF Mono,Fira Code,monospace;margin-top:2px}.node-tooltip__hint{font-size:.65rem;color:#a855f7cc;font-style:italic;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.1)}.graph-stats{position:absolute;bottom:20px;right:20px;display:flex;gap:16px;font-size:.7rem;font-family:SF Mono,Fira Code,monospace;color:#fff6;z-index:10}.graph-stats__item{display:flex;align-items:center;gap:6px}.graph-stats__value{color:#93c5fde6;font-weight:500}.graph-container.cosmic-theme:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(5,5,16,.4) 100%);pointer-events:none;z-index:2}@media (max-width: 768px){.graph-container--mobile .cluster-labels{display:none}.node-tooltip{bottom:calc(24px + env(safe-area-inset-bottom));max-width:calc(100% - 32px);padding:10px 16px}.node-tooltip__name{font-size:1rem}.node-tooltip__genres{font-size:.7rem;text-align:center}.graph-stats{display:none}}@media (max-width: 480px){.node-tooltip{bottom:calc(20px + env(safe-area-inset-bottom));padding:8px 14px}.node-tooltip__name{font-size:.9rem}}.tools-panel-wrapper{position:absolute;top:80px;right:var(--spacing-lg);z-index:100}.tools-panel{background:#0a0a14d9;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden;min-width:240px;max-height:calc(100vh - 120px);overflow-y:auto;animation:slideInPanel .25s cubic-bezier(.16,1,.3,1);box-shadow:0 8px 32px #0006,0 0 60px #6366f114}.tools-panel__drag-handle{display:none}@keyframes slideInPanel{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.tools-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#fff9;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0}.tools-panel__header-left{display:flex;align-items:center;gap:var(--spacing-sm)}.tools-panel__icon{opacity:.7}.tools-panel__close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;color:#ffffff80;cursor:pointer;transition:all .15s ease}.tools-panel__close:hover{background:#ffffff1a;color:#ffffffe6}.tools-panel__content{padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.tools-panel__content .toggle__label,.tools-panel__content .slider__label{color:#ffffffd9}.tools-panel__content .slider__value{background:var(--color-accent-dim);color:var(--color-accent)}.tools-panel__group{display:flex;flex-direction:column}.tools-panel__divider{height:1px;background:var(--color-bg-elevated);margin:var(--spacing-xs) 0}.toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);cursor:pointer}.toggle__label{font-size:.8125rem;color:var(--color-text-primary)}.toggle__switch{position:relative;width:36px;height:20px;flex-shrink:0}.toggle__switch input{opacity:0;width:0;height:0}.toggle__slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-bg-elevated);border-radius:var(--radius-full);transition:all var(--transition-fast)}.toggle__slider:before{content:"";position:absolute;width:14px;height:14px;left:3px;bottom:3px;background:var(--color-text-secondary);border-radius:50%;transition:all var(--transition-fast)}.toggle__switch input:checked+.toggle__slider{background:#10b981}.toggle__switch input:checked+.toggle__slider:before{transform:translate(16px);background:#fff}.slider{display:flex;flex-direction:column;gap:var(--spacing-xs)}.slider__header{display:flex;justify-content:space-between;align-items:center}.slider__label{font-size:.8125rem;color:var(--color-text-primary)}.slider__value{font-size:.75rem;font-family:var(--font-mono);color:var(--color-accent);background:var(--color-accent-dim);padding:2px 6px;border-radius:var(--radius-sm)}.slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:var(--color-bg-elevated);border-radius:var(--radius-full);outline:none;cursor:pointer}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#10b981;border-radius:50%;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 6px #10b98166}.slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 2px 12px #10b98199}.slider input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#10b981;border:none;border-radius:50%;cursor:pointer;transition:all var(--transition-fast)}@media (max-width: 768px){.tools-panel-wrapper{position:fixed;bottom:0;left:0;top:0;right:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tools-panel{width:100%;max-height:60vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;animation:slideUpSheet .3s cubic-bezier(.16,1,.3,1);padding-bottom:env(safe-area-inset-bottom)}@keyframes slideUpSheet{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.tools-panel__drag-handle{display:flex;justify-content:center;padding:var(--spacing-sm) 0;cursor:grab}.tools-panel__drag-bar{width:36px;height:4px;background:#ffffff4d;border-radius:var(--radius-full)}.tools-panel__close{width:44px;height:44px}.toggle__switch{width:44px;height:24px}.toggle__slider:before{width:18px;height:18px}.toggle__switch input:checked+.toggle__slider:before{transform:translate(20px)}.slider input[type=range]{height:8px}.slider input[type=range]::-webkit-slider-thumb{width:24px;height:24px}.slider input[type=range]::-moz-range-thumb{width:24px;height:24px}}.artist-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;padding:var(--spacing-lg);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.artist-card{position:relative;width:100%;max-width:400px;background:var(--color-bg-secondary);border:1px solid var(--color-bg-elevated);border-radius:var(--radius-lg);overflow:hidden;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.artist-card__close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#00000080;border-radius:50%;color:var(--color-text-primary);transition:all var(--transition-fast);z-index:10}.artist-card__close:hover{background:#000000b3;transform:scale(1.1)}.artist-card__header{display:flex;align-items:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);background:linear-gradient(to bottom,var(--color-bg-tertiary),var(--color-bg-secondary))}.artist-card__image{width:100px;height:100px;border-radius:var(--radius-md);object-fit:cover;box-shadow:var(--shadow-md)}.artist-card__image--placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-bg-elevated);color:var(--color-text-muted)}.artist-card__info{flex:1;min-width:0}.artist-card__name{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artist-card__stats{display:flex;flex-wrap:wrap;gap:var(--spacing-md);font-size:.875rem;color:var(--color-text-secondary)}.artist-card__stat strong{color:var(--color-accent);font-weight:600}.artist-card__genres{padding:var(--spacing-lg);padding-top:0}.artist-card__section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.artist-card__genre-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.artist-card__genre{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-family:var(--font-mono);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.artist-card__genre:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.artist-card__link{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:calc(100% - var(--spacing-lg) * 2);margin:0 var(--spacing-lg) var(--spacing-sm);padding:var(--spacing-md);font-size:.875rem;font-weight:600;border-radius:var(--radius-md);transition:all var(--transition-fast)}.artist-card__link:last-of-type{margin-bottom:var(--spacing-lg)}.artist-card__link--spotify{color:#000;background:var(--color-accent)}.artist-card__link--spotify:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 4px 20px #1db95466}.artist-card__link--lastfm{color:#fff;background:#d51007}.artist-card__link--lastfm:hover{background:#ba0d06;transform:translateY(-1px);box-shadow:0 4px 20px #d5100766}.artist-card__tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg) 0;border-bottom:1px solid var(--color-bg-elevated);background:var(--color-bg-secondary)}.artist-card__tab{padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;transition:all var(--transition-fast);cursor:pointer;display:flex;align-items:center;gap:var(--spacing-xs)}.artist-card__tab:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.artist-card__tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.artist-card__tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;font-size:.6875rem;font-weight:700;background:var(--color-bg-elevated);border-radius:10px;color:var(--color-text-secondary)}.artist-card__tab--active .artist-card__tab-badge{background:var(--color-accent);color:#000}.artist-card__connections{padding:var(--spacing-lg);max-height:400px;overflow-y:auto}.artist-card__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);color:var(--color-text-muted);text-align:center}.artist-card__connection-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.connection-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.connection-item:hover{background:var(--color-bg-elevated);transform:translate(2px)}.connection-item__image{width:44px;height:44px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.connection-item__image--placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);color:var(--color-text-muted)}.connection-item__info{flex:1;min-width:0}.connection-item__name{font-size:.875rem;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}.connection-item__genres{font-size:.75rem;font-family:var(--font-mono);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-item__strength{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:50px;flex-shrink:0}.connection-item__percentage{font-size:1.125rem;font-weight:700;font-family:var(--font-mono);color:var(--color-accent)}.connection-item__label{font-size:.625rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}@media (max-width: 768px){.artist-modal{padding:0;align-items:flex-end}.artist-card{max-width:100%;max-height:85vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;flex-direction:column;animation:slideUpModal .3s cubic-bezier(.16,1,.3,1)}@keyframes slideUpModal{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.artist-card__close{width:44px;height:44px;top:var(--spacing-sm);right:var(--spacing-sm)}.artist-card__header{flex-shrink:0}.artist-card__genres{flex:1;overflow-y:auto;padding-top:var(--spacing-md)}.artist-card__genre{padding:var(--spacing-sm) var(--spacing-md);font-size:.8125rem}.artist-card__link{min-height:52px;font-size:1rem;margin-bottom:var(--spacing-md)}.artist-card__link:last-of-type{margin-bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom))}.artist-card__connections{max-height:none;padding-bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom))}.connection-item{padding:var(--spacing-md)}.connection-item__image{width:52px;height:52px}.connection-item__name{font-size:1rem}.connection-item__genres{font-size:.8125rem}}@media (max-width: 480px){.artist-card__header{flex-direction:column;align-items:center;text-align:center;padding-top:var(--spacing-xl)}.artist-card__image{width:120px;height:120px}.artist-card__name{white-space:normal;text-align:center}.artist-card__stats{justify-content:center}}.starfield-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.mode-selector{position:relative}.mode-selector__button{display:flex;align-items:center;gap:var(--spacing-sm, 8px);padding:var(--spacing-sm, 8px) var(--spacing-md, 16px);font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #a0a0b0);background:#ffffff0d;border:none;border-radius:9999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:all .15s ease}.mode-selector__button:hover{color:var(--color-text-primary, #f0f0f5);background:#ffffff1f}.mode-selector__button svg{width:14px;height:14px;transition:transform .15s ease}.mode-selector__button svg.rotated{transform:rotate(180deg)}@keyframes dropdownOpen{0%{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dropdownClose{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-12px) scale(.95)}}.mode-selector__dropdown{position:absolute;top:calc(100% + 8px);left:5px;min-width:200px;background:#1a1a24f2;border:1px solid rgba(255,255,255,.1);border-radius:10px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 40px #00000080;opacity:0;transform:translateY(-12px) scale(.95);pointer-events:none;animation:dropdownClose .2s cubic-bezier(.4,0,.2,1) forwards}.mode-selector__dropdown.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;animation:dropdownOpen .2s cubic-bezier(.4,0,.2,1) forwards}.mode-selector__option{display:flex;align-items:center;gap:8px;padding:12px;font-size:.9rem;color:var(--color-text-secondary, #a0a0b0);cursor:pointer;transition:all .15s ease;border:none;width:100%;text-align:left;background:none}.mode-selector__option:first-child{border-radius:10px 10px 0 0}.mode-selector__option:last-child{border-radius:0 0 10px 10px}.mode-selector__option:hover{background:#ffffff14;color:var(--color-text-primary, #f0f0f5)}.mode-selector__option.active{color:#1db954;background:#1db9541a}.mode-selector__option-icon{font-size:1.1rem;display:none}.mode-selector__option-label{flex:1}.mode-selector__badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border-radius:var(--radius-full);background:#1db95433;color:#b7f7d1}.discover-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:120;opacity:0;pointer-events:none;transition:opacity .2s ease}.discover-overlay.open{opacity:1;pointer-events:auto}.discover-panel{width:min(92vw,640px);max-height:80vh;display:flex;flex-direction:column;background:#0a0a14e6;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);box-shadow:0 24px 60px #00000073,0 0 80px #6366f11f;transform:translateY(20px);transition:transform .25s ease;overflow:hidden}.discover-overlay.open .discover-panel{transform:translateY(0)}.discover-panel__header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff08;position:sticky;top:0;z-index:2}.discover-panel__header h2{margin:0;font-size:.9rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#ffffffb3}.discover-panel__close{justify-self:start;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#fff9;padding:6px 12px;border-radius:var(--radius-full);background:#ffffff0f;border:1px solid transparent;transition:all .15s ease}.discover-panel__close:hover{color:#ffffffe6;border-color:#ffffff2e}.discover-panel__spacer{justify-self:end}.discover-panel__content{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);overflow-y:auto}.discover-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:10px 14px;border-radius:var(--radius-md);font-size:.8rem;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#fffc}.discover-banner button{color:#fffc;font-size:.75rem}.discover-banner--offline,.discover-banner--storage{background:#f59e0b26;border-color:#f59e0b59}.discover-banner--error{background:#ef444426;border-color:#ef444459}.discover-search{display:flex;align-items:center;gap:var(--spacing-sm)}.discover-search input{flex:1;padding:10px 14px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.08);background:#ffffff0d;color:var(--color-text-primary);font-size:.9rem;outline:none;transition:border .15s ease}.discover-search input:focus{border-color:#1db95499}.discover-search input:disabled{opacity:.6;cursor:not-allowed}.discover-search__error{font-size:.8rem;color:#f87171;margin-top:-6px}.discover-preview{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-lg);background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.discover-preview__title{font-weight:600;margin-bottom:4px}.discover-preview__meta{font-size:.8rem;color:var(--color-text-secondary)}.discover-preview__actions{display:flex;gap:var(--spacing-sm)}.discover-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.discover-section__title{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:#ffffff80}.discover-empty{padding:var(--spacing-md);border-radius:var(--radius-lg);background:#ffffff0a;border:1px dashed rgba(255,255,255,.1);color:var(--color-text-secondary);font-size:.85rem;display:flex;flex-direction:column;gap:6px}.discover-card{background:#0a0a14bf;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);box-shadow:0 10px 30px #0000004d;transition:border .15s ease,transform .15s ease}.discover-card--featured{background:#121822cc;border-color:#1db9544d;padding:calc(var(--spacing-md) + 4px)}.discover-card--active{border-color:#3b82f680;box-shadow:0 0 40px #3b82f633}.discover-card--highlight{animation:discoverPulse .9s ease-out}.discover-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm)}.discover-card__header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.discover-card__icon-actions{display:flex;gap:6px}.discover-card__icon-button{width:28px;height:28px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.discover-card__icon-button:hover{color:var(--color-text-primary);background:#ffffff1f}.discover-card__icon-button:disabled{opacity:.6;cursor:not-allowed}.discover-card__icon-button--danger{color:#fca5a5}.discover-card__icon-button.is-loading svg{animation:discoverSpin .8s linear infinite}.discover-card__titles{display:flex;flex-direction:column;gap:4px}.discover-card__title{font-size:1rem;font-weight:600}.discover-card__subtitle{font-size:.8rem;color:var(--color-text-secondary)}.discover-card__badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.discover-card__badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;padding:4px 8px;border-radius:var(--radius-full);background:#ffffff14;color:#ffffffb3}.discover-card__badge--active{background:#3b82f633;color:#93c5fd}.discover-card__badge--warn{background:#f59e0b33;color:#fbbf24}.discover-card__badge--info{background:#a855f733;color:#c084fc}.discover-card__stats{font-size:.85rem;color:var(--color-text-secondary);display:flex;gap:var(--spacing-md)}.discover-card__genres{font-size:.85rem;color:#fffc}.discover-card__meta{font-size:.75rem;color:#ffffff80}.discover-card__actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.discover-card__action--danger{color:#fca5a5}.discover-card__action--loading{opacity:.7}.discover-fuse-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:130;display:flex;align-items:center;justify-content:center}.discover-fuse{width:min(90vw,520px);background:#0a0a14f2;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);box-shadow:0 20px 60px #0006,0 0 80px #6366f11a}.discover-fuse__header{display:flex;align-items:center;justify-content:space-between}.discover-fuse__header h3{font-size:1.1rem;margin:0}.discover-fuse__close{width:32px;height:32px;border-radius:var(--radius-full);background:#ffffff14;display:inline-flex;align-items:center;justify-content:center}.discover-fuse__summary{font-size:.85rem;color:var(--color-text-secondary)}.discover-fuse__options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-sm)}.discover-fuse__option{display:flex;flex-direction:column;gap:6px;padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.08);background:#ffffff0a;text-align:left;transition:all .15s ease}.discover-fuse__option:hover{border-color:#fff3}.discover-fuse__option.is-selected{border-color:#1db95480;background:#1db9541f}.discover-fuse__option-title{font-weight:600}.discover-fuse__option-subtitle{font-size:.8rem;color:var(--color-text-secondary)}.discover-fuse__option-meta{font-size:.8rem;color:#ffffffb3}.discover-fuse__confirm{width:100%}.discover-fuse__note{font-size:.75rem;color:#ffffff80}@keyframes discoverPulse{0%{box-shadow:0 0 #1db95400;border-color:#1db95466}60%{box-shadow:0 0 30px #1db9544d;border-color:#1db95499}to{box-shadow:0 0 #1db95400;border-color:#ffffff14}}@keyframes discoverSpin{to{transform:rotate(360deg)}}@media (max-width: 768px){.discover-panel{width:100%;height:100%;max-height:100%;border-radius:0}.discover-panel__content{padding:var(--spacing-md)}.discover-search{flex-direction:column;align-items:stretch}.discover-preview{flex-direction:column;align-items:flex-start}.discover-preview__actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.discover-card__actions{flex-wrap:wrap}.discover-card__icon-button{width:32px;height:32px}}.ownership-stack{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;margin-left:12px}.ownership-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-full);background:#ffffff14;color:var(--color-text-secondary);font-size:.75rem;font-weight:500;letter-spacing:.02em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);transition:all .15s ease;max-width:220px}.ownership-badge:hover{color:var(--color-text-primary);background:#ffffff24}.ownership-stack__action{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:var(--radius-full);background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:var(--color-text-secondary);font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:all .15s ease}.ownership-stack__action:hover{color:var(--color-text-primary);background:#ffffff24}.ownership-stack__action:disabled{opacity:.6;cursor:not-allowed}.ownership-badge__icon{display:inline-flex;align-items:center;justify-content:center;color:#ffffffb3}.ownership-badge__text{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.ownership-stack{margin-left:8px}.ownership-badge{max-width:140px;padding:6px 10px}}@media (max-width: 480px){.ownership-badge__text{max-width:90px}}.connections-setup{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#050510d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:150;animation-delay:2s;animation:connectionsFadeIn .3s ease}.connections-setup--exit{animation:connectionsFadeOut .25s ease forwards}.connections-setup--exit .connections-setup__card{animation:connectionsPopupExit .25s ease forwards}.connections-setup__card{background:#1a1a24f2;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:32px;max-width:500px;width:90%;text-align:center;position:relative;box-shadow:0 0 60px #6478b426,0 8px 32px #00000080;animation:connectionsPopupEnter .4s cubic-bezier(.16,1,.3,1)}.connections-setup__title{font-family:Cormorant Garamond,Georgia,serif;font-size:1.8rem;font-weight:400;margin-bottom:8px;color:#f0f0f5}.connections-setup__subtitle{color:#a0a0b0;margin-bottom:32px}.connections-setup__subtitle-label{display:block;font-weight:600;color:#9ae6b4;margin-bottom:6px}.connections-setup__artists{display:flex;align-items:flex-start;justify-content:center;gap:24px;margin-bottom:24px;position:relative;isolation:isolate}.connections-setup__artist{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;z-index:2}.connections-setup__artist-image{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.2);box-shadow:0 0 10px #1db95433,0 0 24px #1db9541a;animation:connectionsArtistGlow 2.7s ease-in-out infinite}.connections-setup__artist-image--placeholder{background:#ffffff14}.connections-setup__artist:first-child .connections-setup__artist-image{animation-delay:0s}.connections-setup__artist:last-child .connections-setup__artist-image{animation-delay:1.8s}.connections-setup__artist-name{font-weight:500;color:#f0f0f5;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connections-setup__arrow{display:flex;align-items:center;justify-content:center;align-self:center;color:#606070;position:relative;z-index:2;margin-top:-20px}.connections-setup__arrow span{font-size:1.5rem;margin-bottom:4px}.connections-setup__arrow svg{width:40px;height:40px;opacity:.5}.connections-setup__arrow-icon{filter:drop-shadow(0 0 6px rgba(29,185,84,.35));animation:connectionsArrowPulse 2.7s ease-in-out infinite;animation-delay:.9s}.connections-setup__random{border:1px solid rgba(12,74,37,.8);box-shadow:0 0 0 1px #0c4a2526 inset;color:#d5f5e0}.connections-setup__random:hover{border-color:#1db954cc;color:#e7f7ee}.connections-setup__hint{color:#606070;font-size:.9rem;margin-bottom:32px}.connections-setup__actions{display:flex;justify-content:center;gap:16px}.connections-setup__exit{position:absolute;top:16px;right:16px;background:none;border:none;color:#606070;cursor:pointer;padding:8px;transition:color .2s}.connections-setup__exit:hover{color:#f0f0f5}.connections-overlay{position:fixed;top:0;left:0;right:0;z-index:150;pointer-events:none}.connections-overlay__bar{display:flex;align-items:center;gap:16px;padding:68px 24px 8px;background:linear-gradient(to bottom,rgba(5,5,16,.9),transparent);pointer-events:auto}.connections-overlay__stats{display:flex;align-items:center;gap:24px;flex:1}.connections-overlay__owner{font-size:.8rem;color:#ffffffbf;background:#ffffff14;padding:4px 10px;border-radius:9999px;border:1px solid rgba(255,255,255,.12);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connections-overlay__timer,.connections-overlay__hops{font-size:1rem;color:#f0f0f5;font-weight:500}.connections-overlay__target{display:flex;align-items:center;gap:8px;background:rgba(var(--connections-panel-rgb),.8);padding:4px 16px;border-radius:9999px;border:1px solid rgba(255,255,255,.12)}.connections-overlay__target-label{color:#a0a0b0;font-size:.85rem}.connections-overlay__target-image{width:24px;height:24px;border-radius:50%;object-fit:cover}.connections-overlay__target-image--placeholder{background:#ffffff14}.connections-overlay__target-name{color:#f0f0f5;font-weight:500}.connections-overlay__artist-card-container{position:fixed;right:16px;top:50%;width:300px;z-index:140;pointer-events:auto;transform:translateY(-50%)}.connections-artist-card{background:rgba(var(--connections-panel-rgb),.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px;box-shadow:0 12px 40px #00000073,0 0 0 1px #1db9540d;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.connections-artist-card__label{color:#a0a0b0;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.connections-artist-card__image{width:120px;height:120px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.2);box-shadow:0 0 20px #1db9544d,0 0 40px #1db95426;transition:all .3s ease;opacity:0;animation:connectionsImageFade .35s ease both}.connections-artist-card__image:hover{box-shadow:0 0 30px #1db95466,0 0 50px #1db95433}.connections-artist-card__image--placeholder{display:flex;align-items:center;justify-content:center;background:#ffffff14;color:#606070}.connections-artist-card__image--placeholder svg{width:48px;height:48px}.connections-artist-card__name-slot{max-height:2.6em;overflow:hidden;width:100%;perspective:600px}.connections-artist-card__name{color:#f0f0f5;font-size:1.1rem;font-weight:600;line-height:1.2;text-decoration:none;transition:all .2s ease;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-width:100%;animation:connectionsNameSlot .45s cubic-bezier(.16,1,.3,1) both;transform-origin:top;backface-visibility:hidden;will-change:transform,opacity}a.connections-artist-card__name:hover{color:#9ae6b4;text-shadow:0 0 8px rgba(154,230,180,.3);text-decoration:underline}.connections-artist-card__toggle{font-size:.85rem;margin-top:4px}.connections-overlay__links-panel{position:fixed;left:16px;top:50%;width:280px;max-height:400px;background:rgba(var(--connections-panel-rgb),.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 12px 40px #00000073,0 0 0 1px #1db95414;z-index:140;display:flex;flex-direction:column;opacity:0;transform:translate(-30px,-50%);pointer-events:none;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}.connections-overlay__links-panel.is-open{opacity:1;transform:translateY(-50%);pointer-events:auto;visibility:visible;transition:opacity .2s ease,transform .2s ease}.connections-overlay__links-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.connections-overlay__links-title{color:#9ae6b4;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.connections-overlay__links-close{background:transparent;border:none;color:#fff9;cursor:pointer;padding:4px;transition:color .2s ease}.connections-overlay__links-close:hover{color:#9ae6b4}.connections-overlay__links-content{flex:1;overflow-y:auto;padding:8px}.connections-overlay__links-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.connections-overlay__links-item{font-size:.85rem;color:#f0f0f5}.connections-overlay__links-button-item{width:100%;border:none;background:transparent;color:inherit;text-align:left;padding:4px 6px;border-radius:6px;cursor:pointer}.connections-overlay__links-button-item:hover{background:#1db9542e}.connections-overlay__links-empty{font-size:.85rem;color:#a0a0b0;padding:4px 6px}.connections-panel{position:fixed;left:0;right:0;bottom:0;z-index:150;display:flex;justify-content:center;padding:0 16px 24px;pointer-events:none}.connections-panel__hint-inline{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);color:#9ae6b4;font-size:.9rem;font-weight:500;pointer-events:none;z-index:160}.connections-panel__card{width:min(720px,100%);background:rgba(var(--connections-panel-rgb),.9);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:16px;pointer-events:auto;box-shadow:0 12px 40px #00000073,0 0 40px #1db95414}.connections-panel__path{margin-bottom:6px}.connections-panel__path-list{display:flex;gap:8px;margin-bottom:8px;margin-top:-6px;align-items:center;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding:10px 12px;height:52px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(90deg,#1db95414,#ffffff05),rgba(var(--connections-panel-rgb),.6);box-shadow:inset 0 0 0 1px #1db9540f;scrollbar-width:thin;scrollbar-color:rgba(29,185,84,.9) transparent;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;transform:rotateX(180deg);transform-origin:center}.connections-panel__path-list>*{transform:rotateX(180deg)}.connections-panel__path-list::-webkit-scrollbar{height:4px}.connections-panel__path-list::-webkit-scrollbar-track{background:transparent}.connections-panel__path-list::-webkit-scrollbar-thumb{background:#1db954e6;border-radius:9999px}.connections-panel__path-list::-webkit-scrollbar-thumb:hover{background:#1db954}.connections-panel__path-item{display:flex;align-items:center;gap:8px;flex:0 0 auto}.connections-panel__path-button{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#f0f0f5;padding:4px 10px;border-radius:9999px;font-size:.85rem;font-family:var(--font-primary);font-weight:700;cursor:default;transition:all .2s;white-space:nowrap;box-shadow:inset 0 0 0 1px #ffffff08}.connections-panel__path-button.is-clickable{cursor:pointer}.connections-panel__path-button.is-clickable:hover{background:#1db95426;border-color:#1db95459;color:#e7f7ee}.connections-panel__path-item.is-added .connections-panel__path-button{animation:connectionsPathAdd .4s cubic-bezier(.16,1,.3,1)}.connections-panel__path-button:disabled{opacity:.7}.connections-panel__path-arrow{display:inline-flex;align-items:center;color:#9ae6b4;opacity:.8;filter:drop-shadow(0 0 6px rgba(29,185,84,.35))}.connections-panel__path-arrow-icon{width:18px;height:18px}.connections-panel__path-arrow.is-added .connections-panel__path-arrow-icon{animation:connectionsPathArrow .35s ease-out}.connections-panel__stats{color:#a0a0b0;font-size:.85rem;margin-bottom:12px;margin-left:8px}.connections-panel__stat-number{font-weight:600}.connections-panel__stat-number--guesses{color:#93c5fd}.connections-panel__stat-number--hints{color:#f59e0b}.connections-panel__stat-number--optimal{color:#9ae6b4}.connections-panel__stat-number--jumps-neutral{color:#cbd5f5}.connections-panel__stat-number--jumps-good{color:#10b981}.connections-panel__stat-number--jumps-warn{color:#fbbf24}.connections-panel__stat-number--jumps-bad{color:#ef4444}.connections-panel__input-wrap{position:relative}.connections-panel__input{position:relative;display:flex;align-items:center;gap:8px;width:100%}.connections-panel__input-field{flex:1;min-width:0;background:rgba(var(--connections-panel-rgb),.75);border:1px solid rgba(255,255,255,.12);color:#f0f0f5;padding:10px 12px;border-radius:10px;outline:none;font-size:1rem;font-family:var(--font-primary)}.connections-panel__input-field::placeholder{color:#606070;font-family:var(--font-primary)}.connections-panel__input-field:focus{border-color:#1db95499;box-shadow:0 0 0 2px #1db95433}.connections-panel__input-field:disabled{opacity:.6;cursor:not-allowed}.connections-panel__input .btn--primary{font-family:var(--font-primary);font-weight:600;flex-shrink:0}.connections-panel__action-button{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#f0f0f5;padding:10px;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.connections-panel__action-button:hover:not(:disabled){background:#1db95433;border-color:#1db95466;color:#9ae6b4}.connections-panel__action-button:disabled{opacity:.4;cursor:not-allowed}.connections-panel__action-button--hint.is-active{background:#1db95447;border-color:#1db954e6;color:#e7f7ee}.connections-panel__action-button svg{pointer-events:none}.connections-panel__action-button--connections-mobile{display:none}.connections-panel__suggestions{position:absolute;left:0;right:0;bottom:calc(100% + 8px);background:rgba(var(--connections-panel-rgb),.95);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:6px;display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto;z-index:10}.connections-panel__suggestion{background:transparent;border:none;color:#f0f0f5;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer}.connections-panel__suggestion.is-active,.connections-panel__suggestion:hover{background:#1db95433}.connections-panel__hint-button.is-active{border-color:#1db95499;color:#e7f7ee;background:#1db95433}.connections-panel__hint{margin-top:10px;padding:6px 10px;border-radius:8px;text-align:center;font-size:.9rem;color:#9ae6b4;background:#1db9541f;border:1px solid rgba(29,185,84,.25)}.connections-panel__feedback{margin-top:10px;padding:6px 10px;border-radius:8px;text-align:center;font-size:.9rem}.connections-panel__feedback--success{color:#10b981;background:#10b9811f;border:1px solid rgba(16,185,129,.2)}.connections-panel__feedback--warning{color:#f59e0b;background:#f59e0b1f;border:1px solid rgba(245,158,11,.2)}.connections-panel__feedback--error{color:#ef4444;background:#ef44441f;border:1px solid rgba(239,68,68,.2)}.connections-toast{position:fixed;left:50%;bottom:calc(var(--connections-pill-bottom) + var(--connections-toast-offset));transform:translate(-50%);background:#12121af2;border:1px solid rgba(29,185,84,.35);color:#9ae6b4;padding:8px 14px;border-radius:9999px;font-size:.9rem;box-shadow:0 12px 30px #00000059;z-index:160;pointer-events:none;animation:connectionsToast 2.4s ease forwards}.connections-toast--warning{border-color:#f59e0b66;color:#fbbf24}.connections-toast--error{border-color:#ef444473;color:#fca5a5}.connections-result{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#050510e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:150;animation:connectionsFadeIn .4s ease}.connections-result__card{background:#1a1a24f2;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:32px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;text-align:center;box-shadow:0 0 60px #6478b426,0 8px 32px #00000080;animation:connectionsPopupEnter .4s cubic-bezier(.16,1,.3,1)}.connections-result__title{font-family:Cormorant Garamond,Georgia,serif;font-size:1.8rem;font-weight:400;margin-bottom:24px;color:#f0f0f5}.connections-result__subtitle{color:#a0a0b0;margin-top:-16px;margin-bottom:24px}.connections-result__path{margin-bottom:24px;text-align:left}.connections-result__path h3{font-size:1rem;font-weight:500;color:#a0a0b0;margin-bottom:16px}.connections-result__path-list{display:flex;flex-direction:column;gap:12px;max-height:300px;overflow-y:auto;padding:16px;background:#0003;border-radius:8px}.connections-result__path-item{display:flex;align-items:center;gap:12px;padding:8px;background:#ffffff0d;border-radius:8px}.connections-result__path-image{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.2)}.connections-result__path-image--placeholder{background:#ffffff14}.connections-result__path-name{flex:1;color:#f0f0f5;font-weight:500}.connections-result__path-arrow{color:#1db954;font-size:1.2rem}.connections-result__paths-container{display:flex;gap:24px;margin-bottom:24px;text-align:left}.connections-result__path-column{flex:1;min-width:0}.connections-result__path-column h3{font-size:1rem;font-weight:500;color:#a0a0b0;margin-bottom:16px}.connections-result__stats{display:flex;justify-content:center;flex-wrap:wrap;gap:32px;margin-bottom:16px}.connections-result__stat{text-align:center}.connections-result__stat-value{display:block;font-size:1.8rem;font-weight:600;color:#1db954}.connections-result__stat-label{font-size:.85rem;color:#a0a0b0}.connections-result__optimal{color:#10b981;font-weight:500;margin-bottom:24px}.connections-result__suboptimal{color:#f59e0b;margin-bottom:24px}.connections-result__actions{display:flex;justify-content:center;gap:16px}@keyframes connectionsPopupEnter{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes connectionsPopupExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes connectionsArtistGlow{0%,to{box-shadow:0 0 10px #1db95433,0 0 24px #1db9541a}45%{box-shadow:0 0 22px #1db9548c,0 0 56px #1db95459}}@keyframes connectionsArrowPulse{0%,to{opacity:.3;filter:drop-shadow(0 0 6px rgba(29,185,84,.3))}50%{opacity:.9;filter:drop-shadow(0 0 18px rgba(29,185,84,.7))}}@keyframes connectionsPathAdd{0%{opacity:0;transform:translateY(8px) scale(.96);box-shadow:0 0 #1db95400}60%{opacity:1;transform:translateY(0) scale(1.02);box-shadow:0 0 12px #1db95440}to{opacity:1;transform:translateY(0) scale(1);box-shadow:none}}@keyframes connectionsPathArrow{0%{opacity:0;transform:translate(-6px)}to{opacity:.8;transform:translate(0)}}@keyframes connectionsImageFade{0%{opacity:0}to{opacity:1}}@keyframes connectionsNameSlot{0%{opacity:0;transform:translateY(-120%) rotateX(65deg)}70%{opacity:1;transform:translateY(6%) rotateX(0)}to{opacity:1;transform:translateY(0) rotateX(0)}}@keyframes connectionsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes connectionsFadeOut{0%{opacity:1}to{opacity:0}}@keyframes connectionsToast{0%{opacity:0;transform:translate(-50%) translateY(10px)}15%{opacity:1;transform:translate(-50%) translateY(0)}80%{opacity:1;transform:translate(-50%) translateY(-6px)}to{opacity:0;transform:translate(-50%) translateY(-14px)}}@media (max-width: 768px){.connections-setup__artists{flex-direction:column;align-items:center}.connections-setup__arrow{transform:rotate(90deg);margin-top:0}.connections-setup__artist{width:100%}.connections-setup__artist-name{text-align:center}.connections-overlay__bar{flex-wrap:wrap;padding-top:58px}.connections-overlay__target{width:100%;justify-content:center;margin-top:8px}.connections-overlay__artist-card-container{display:none}.connections-overlay__links-panel{left:16px;right:16px;width:auto;max-height:50vh}.connections-panel__card{padding:14px}.connections-panel__input{gap:6px}.connections-result__paths-container{flex-direction:column;gap:30px}.connections-panel__suggestions{bottom:calc(100% + 6px)}.connections-panel__action-button--connections-mobile{display:flex}}.connections-mode{--connections-pill-bottom: 200px;--connections-toast-offset: 56px;--connections-panel-rgb: 10, 10, 20}.app{height:100%;width:100%;display:flex;flex-direction:column;background:#050510;position:relative;overflow:hidden}.app--loading,.app--error{display:flex;align-items:center;justify-content:center}.header{position:absolute;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(to bottom,#050510,transparent);pointer-events:none}.header>*{pointer-events:auto}.header__brand{display:flex;align-items:center;gap:var(--spacing-sm)}.header__title{font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:300;letter-spacing:.2em;color:#f0f0f5;margin:0 -.2em 0 0}.header__actions{display:flex;align-items:center;gap:var(--spacing-sm)}.header--mobile{padding-top:max(var(--spacing-md),env(safe-area-inset-top));padding-left:max(var(--spacing-md),env(safe-area-inset-left));padding-right:max(var(--spacing-md),env(safe-area-inset-right))}.main{flex:1;width:100%;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.error-card{background:#ffffff08;border:none;border-radius:var(--radius-lg);padding:var(--spacing-2xl) var(--spacing-xl);text-align:center;max-width:360px;position:relative;z-index:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 0 60px #6478b414,0 8px 32px #0000004d}.error-card h2{font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:400;letter-spacing:.05em;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.error-card p{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);line-height:1.6}.error-card .btn{border-radius:var(--radius-full);color:var(--color-text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast)}.btn--primary{background:var(--color-accent);color:var(--color-bg-primary)}.btn--primary:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-glow)}.btn--ghost{color:var(--color-text-secondary);background:#ffffff0d;border:none;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn--ghost:hover{color:var(--color-text-primary);background:#ffffff1f}.btn--ghost:active{transform:scale(.97)}.btn--icon{width:36px;height:36px;padding:0;color:var(--color-text-secondary);background:#ffffff0d;border:none;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease}.btn--icon:hover{color:var(--color-text-primary);background:#ffffff1f}.btn--icon:active{transform:scale(.97)}.btn--icon.btn--active{color:#10b981;background:#02502280;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn--icon svg{width:18px;height:18px}.btn--ghost-icon{gap:var(--spacing-xs)}.btn--ghost-icon svg{width:18px;height:18px;flex-shrink:0}@media (max-width: 768px){.header{padding:var(--spacing-sm) var(--spacing-md);padding-top:max(var(--spacing-sm),env(safe-area-inset-top))}.header__title{font-size:1.2rem;letter-spacing:.15em}.header__actions{gap:var(--spacing-xs)}.btn--ghost-icon{width:44px;height:44px;padding:0;border-radius:var(--radius-full)}.btn--ghost-icon .btn__label{display:none}.btn--icon{width:44px;height:44px}.btn--primary{min-height:48px;padding:var(--spacing-md) var(--spacing-lg)}.btn--ghost{min-height:44px}.error-card{margin:var(--spacing-md);max-width:calc(100% - var(--spacing-md) * 2)}}@media (max-width: 480px){.header__title{font-size:1rem;letter-spacing:.1em}}:root{--color-bg-primary: #0a0a0f;--color-bg-secondary: #12121a;--color-bg-tertiary: #1a1a24;--color-bg-elevated: #22222e;--color-text-primary: #f0f0f5;--color-text-secondary: #a0a0b0;--color-text-muted: #606070;--color-accent: #1DB954;--color-accent-hover: #1ed760;--color-accent-dim: rgba(29, 185, 84, .15);--color-edge: rgba(29, 185, 84, .3);--color-edge-hover: rgba(29, 185, 84, .7);--color-node-default: #1DB954;--color-node-hover: #1ed760;--color-cluster-1: #ff6b6b;--color-cluster-2: #4ecdc4;--color-cluster-3: #ffe66d;--color-cluster-4: #95e1d3;--color-cluster-5: #f38181;--color-cluster-6: #aa96da;--color-cluster-7: #fcbad3;--color-cluster-8: #a8d8ea;--font-primary: "Instrument Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", monospace;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 0 30px rgba(29, 185, 84, .3);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-primary);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-bg-elevated);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button{font-family:inherit;cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}@media (max-width: 768px){button,[role=button],input[type=checkbox],input[type=radio],a{min-height:44px;min-width:44px}button,a,[role=button]{touch-action:manipulation}button,a,[role=button]{-webkit-user-select:none;user-select:none}button:active,a:active,[role=button]:active{opacity:.8}}
