.panel-backdrop{position:fixed;inset:0;background:var(--color-backdrop);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:100;opacity:0;pointer-events:none;transition:opacity .25s ease}.panel-backdrop--open{opacity:1;pointer-events:auto}.panel{position:fixed;top:0;right:0;width:min(400px,85vw);height:100vh;background:var(--color-surface);border-left:1px solid var(--color-border);padding:48px 32px;overflow-y:auto;transform:translate(100%);transition:transform .3s cubic-bezier(.25,.46,.45,.94);z-index:101}.panel--open{transform:translate(0)}.panel__close{position:absolute;top:16px;right:16px;font-size:24px;color:var(--color-text-secondary);transition:color .25s ease;line-height:1;padding:4px}.panel__close:hover{color:var(--color-text)}.panel__content{margin-top:16px}.panel__name{font-size:20px;font-weight:600;color:var(--color-text)}.panel__headline{font-size:14px;color:var(--color-text-secondary);margin-bottom:32px}.panel__section{margin-bottom:24px}.panel__label{font-size:11px;font-weight:600;color:var(--color-text-secondary);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}.panel__section p{font-size:14px;color:var(--color-text-secondary);line-height:1.65}.panel__link{display:block;font-size:14px;color:var(--color-accent);padding:3px 0;transition:opacity .25s ease}.panel__link:hover{opacity:.7;color:var(--color-accent)}.panel__social{display:flex;flex-direction:column;gap:2px}.header{display:flex;gap:32px;align-items:flex-start;margin-bottom:48px}.header__cover{position:relative;flex-shrink:0;width:256px;height:256px;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px var(--color-shadow),0 8px 24px var(--color-shadow-heavy)}.header__spline-wrap{position:absolute;inset:0;border-radius:inherit;overflow:hidden}.header__spline-wrap spline-viewer{display:block;position:relative;left:6px;width:100%;height:calc(100% + 64px)}.header__cover-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-placeholder-from) 0%,var(--color-placeholder-to) 100%)}.header__cover img{width:100%;height:100%;object-fit:cover}.header__info{flex:1;min-width:0;padding-top:4px}.header__name{font-size:22px;font-weight:600;line-height:1.2;color:var(--color-text);letter-spacing:-.01em}.header__headline{font-size:22px;font-weight:600;line-height:1.2;color:var(--color-accent);margin-bottom:6px}.header__meta{font-size:12px;font-weight:400;color:var(--color-text-secondary);margin-bottom:14px}.header__description{font-size:13px;font-weight:400;color:var(--color-text-secondary);line-height:1.65;margin-bottom:16px}.header__more-btn{font-size:13px;font-weight:600;color:var(--color-text);margin-left:4px;cursor:pointer;transition:color var(--transition)}.header__more-btn:hover{color:var(--color-accent)}.header__follow{display:inline-flex;align-items:center;gap:4px;padding:7px 20px;border-radius:980px;background:var(--color-accent);color:var(--color-bg);font-size:13px;font-weight:600;letter-spacing:.01em;transition:background var(--transition),transform var(--transition)}.header__follow:hover{background:var(--color-accent-hover);color:var(--color-bg);transform:scale(1.02)}@media(max-width:600px){.header__cover{width:200px;height:200px}.header__follow{margin:0 auto}.header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}}@media(prefers-color-scheme:dark){.header__cover spline-viewer{background-color:var(--color-layer-0)}.header__spline-wrap{background-color:var(--color-layer-0)}}.tracklist{margin-bottom:48px}.tracklist__section{margin-bottom:0}.tracklist__heading{font-size:13px;font-weight:600;color:var(--color-text);padding:20px 8px 8px;letter-spacing:.01em}.tracklist__section:first-child .tracklist__heading{padding-top:0}.tracklist__row{display:flex;align-items:center;padding:12px 8px;border-top:1px solid var(--color-border);cursor:pointer;text-decoration:none;color:inherit;transition:background var(--transition)}.tracklist__section:last-child .tracklist__row:last-child{border-bottom:1px solid var(--color-border)}.tracklist__row:hover{background:var(--color-hover-bg)}.tracklist__num{width:36px;flex-shrink:0;font-size:15px;font-weight:400;color:var(--color-text-secondary);text-align:left}.tracklist__title{flex:1;font-size:15px;font-weight:400;color:var(--color-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.tracklist__detail{flex-shrink:0;font-size:15px;font-weight:400;color:var(--color-text-secondary);margin-left:16px}.tracklist__row--playable{width:100%;border:none;background:none;font-family:inherit}.tracklist__play{width:36px;flex-shrink:0;display:flex;align-items:left;justify-content:left;color:var(--color-accent);transition:transform var(--transition)}.tracklist__spotify{border-top:1px solid var(--color-border)}.tracklist__player{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 8px}.tracklist__player--open{max-height:100px;padding:4px 8px 12px}.tracklist__embed{display:block;width:100%;border-radius:8px}.tracklist__section:last-child .tracklist__spotify:last-child{border-bottom:1px solid var(--color-border)}.tracklist__preview{position:fixed;z-index:50;width:260px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;overflow:hidden;box-shadow:0 14px 28px var(--color-preview-shadow);pointer-events:none}.tracklist__preview-image{width:100%;height:146px;object-fit:cover;display:block}.tracklist__preview-meta{padding:10px 12px;border-top:1px solid var(--color-border);background:var(--color-surface)}.tracklist__preview-title{font-size:13px;color:var(--color-text);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracklist__preview-detail{font-size:12px;color:var(--color-text-secondary);margin-top:2px}@media(max-width:1024px){.tracklist__preview{width:220px}.tracklist__preview-image{height:124px}}.footer{display:flex;justify-content:space-between;align-items:flex-end;padding-top:16px;border-top:1px solid var(--color-border)}.footer__info{display:flex;flex-direction:row;gap:16px}.footer__info p{font-size:12px;font-weight:400;color:var(--color-text-secondary);line-height:1.6}.footer__social{display:flex;align-items:center;gap:12px}.footer__icon{color:var(--color-text-secondary);transition:color var(--transition);display:flex}.footer__icon:hover{color:var(--color-text)}@media(max-width:600px){.footer{flex-direction:row;align-items:flex-start;text-align:left;gap:16px}.footer__info{flex-direction:column;gap:2px}}:root{--color-bg: #f9f9f9;--color-text: #1d1d1f;--color-text-secondary: #536550;--color-accent: #29a011;--color-accent-hover: #3bd81b;--color-border: #e8e8ed;--color-hover-bg: #f5f5f7;--color-surface: #ffffff;--color-placeholder-from: #f1f3f5;--color-placeholder-to: #dfe4ea;--color-backdrop: rgba(0, 0, 0, .3);--color-shadow: rgba(0, 0, 0, .08);--color-shadow-heavy: rgba(0, 0, 0, .06);--color-preview-shadow: rgba(0, 0, 0, .18);--color-selection: rgba(250, 36, 60, .12);--font-body: "IBM Plex Mono", "SF Mono", "Menlo", monospace;--max-width: 1280px;--transition: .25s ease}@media(prefers-color-scheme:dark){:root{--color-bg: #0a0a0a;--color-text: #e4e4e7;--color-text-secondary: #8a9a87;--color-accent: #4ade30;--color-accent-hover: #6bee54;--color-border: #232323;--color-hover-bg: #141414;--color-surface: #161616;--color-placeholder-from: #1a1a1a;--color-placeholder-to: #252525;--color-backdrop: rgba(0, 0, 0, .6);--color-shadow: rgba(0, 0, 0, .3);--color-shadow-heavy: rgba(0, 0, 0, .4);--color-preview-shadow: rgba(0, 0, 0, .5);--color-selection: rgba(74, 222, 48, .2);--color-layer-0: #2a2a2a}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:light dark}body{font-family:var(--font-body);font-weight:400;color:var(--color-text);background:var(--color-bg);line-height:1.5;transition:background var(--transition),color var(--transition)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}::selection{background:var(--color-selection);color:var(--color-text)}.app{max-width:var(--max-width);margin:0 auto;padding:60px 24px 40px}
