:root{--text:#111;--text-muted:#666;--hover-bg:#0000000d;--heading:#111}.dark{--text:#e5e5e5;--text-muted:#a3a3a3;--hover-bg:#ffffff1a;--heading:#f0f0f0}body{color:var(--text);letter-spacing:.01em;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-height:100vh;margin:0;font-family:Source Serif Pro,serif;transition:background .3s,color .3s;overflow-x:hidden;background:linear-gradient(#f7f7f7 0%,#f1f1f1 100%)!important}.dark body{background:linear-gradient(#1a1a1a 0%,#222 100%)!important}.content{box-sizing:border-box;will-change:opacity;width:100%;min-height:100vh;color:var(--text);background:0 0;flex-direction:column;justify-content:flex-start;align-items:center;padding-bottom:2rem;transition:opacity .3s,color .3s;display:flex;position:relative}.page-content-top{padding-top:4.5rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bio{box-sizing:border-box;max-width:min(800px,90%);color:var(--text);margin:0 auto;padding:0 clamp(1rem,3vw,2rem);transition:color .3s}.bio .social-links{text-align:center;margin-top:3rem;padding-bottom:2rem}.bio .social-links a{color:var(--text);will-change:transform;border-radius:4px;padding:.5rem 1rem;font-family:inherit;font-size:.98rem;text-decoration:underline;transition:color .2s,transform .2s,background .2s;display:inline-block;transform:translate(0,0)}.bio .social-links a:hover{color:var(--text-muted);background:var(--hover-bg);transform:translateY(-2px)}.fade-in{opacity:0;visibility:visible;pointer-events:auto;animation:.5s ease-in forwards fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#animation-bg{z-index:-1;pointer-events:auto;transform-origin:50%;background:0 0;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden;transform:scale(.9)}#animation-bg canvas{width:100%;height:100%;position:absolute;top:0;left:0}body.home-no-scroll{overflow:hidden}.error-message{text-align:center;color:var(--text-muted);padding:2rem 1rem}.art-image,.artwork-placeholder,.about-photo{box-sizing:border-box;border-radius:12px;width:100%;max-width:min(700px,90%);height:auto;margin:2.5rem auto 1.2rem;transition:none;display:block}.about-photo{box-shadow:0 2px 16px #00000012;object-fit:contain!important;background:0 0!important;height:auto!important;animation:none!important}.centered{text-align:center;color:var(--text);transition:color .3s}.tracklist{box-sizing:border-box;max-width:min(600px,90%);margin:.5rem auto;padding:0 1rem;font-size:clamp(1rem,1.5vw,1.1rem);line-height:2.2;transition:all .3s}.track-link{appearance:none;text-align:left;white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;min-width:0;color:var(--text);letter-spacing:.01em;cursor:pointer;will-change:transform;background:0 0;border:none;border-radius:4px;margin-bottom:8px;padding:.4rem .7rem;font-family:inherit;font-size:1.05em;font-weight:400;text-decoration:underline;transition:color .2s,transform .2s,background .2s;display:inline-block;overflow:hidden;transform:translate(0,0)}.track-link:hover{color:var(--text-muted);background:var(--hover-bg);transform:translateY(-2px)}.track-link:focus-visible{outline-offset:2px;outline:2px solid}.track-link.playing{color:var(--text-muted);font-weight:700}.optimized-image-fallback{text-align:center;color:var(--text-muted);background:#0000000d;border:1px solid #00000014;border-radius:12px;justify-content:center;align-items:center;padding:1rem;font-size:.875rem;display:flex}.dark .optimized-image-fallback{background:#ffffff0f;border-color:#ffffff1a}.audio-player{width:100%;margin:.5rem 0 1.5rem;display:none}.track{margin-bottom:1.5rem}.track-link,.bio .social-links a,.fixed-header a{cursor:pointer}.fixed-header{-webkit-backdrop-filter:blur(4px);z-index:10;box-sizing:border-box;flex-direction:row;justify-content:space-between;align-items:center;width:100%;padding:1.5rem 1rem 1rem;transition:background .3s;display:flex;position:fixed;top:0;left:0;background:linear-gradient(#f7f7f7e6 0%,#f1f1f1d9 100%)!important}.dark .fixed-header{background:linear-gradient(#1a1a1ae6 0%,#222222d9 100%)!important}.header-spacer{flex:1}.header-nav-center{flex-wrap:nowrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.header-right{flex:1;justify-content:flex-end;align-items:center;display:flex}.fixed-header a{color:var(--text);text-align:center;will-change:transform;border-radius:4px;margin:0 .3rem;padding:.5rem .7rem .3rem;font-size:clamp(.95rem,4vw,1.15rem);text-decoration:underline;transition:color .2s,transform .2s,background .2s;position:relative;transform:translate(0,0);width:auto!important;display:inline-block!important}.fixed-header a:hover{color:var(--text-muted);background:var(--hover-bg);transform:translateY(-2px)}.fixed-header a[aria-current=page]{font-weight:700;text-decoration:none}.theme-toggle{border:1px solid var(--text);color:var(--text);cursor:pointer;text-align:center;will-change:transform;white-space:nowrap;background:0 0;border-radius:4px;width:auto;margin:0 .3rem;padding:.5rem .7rem .3rem;font-family:inherit;font-size:clamp(.95rem,4vw,1.15rem);text-decoration:none;transition:color .2s,transform .2s,background .2s;display:inline-block;position:relative;transform:translate(0,0)}.theme-toggle:hover{color:var(--text-muted);background:var(--hover-bg);transform:translateY(-2px)}.section-title{text-align:center;color:var(--heading);margin:2.5rem 0 2rem;font-family:inherit;font-size:1.5rem;font-weight:700;transition:color .3s}.list{text-align:center;color:var(--text);margin-bottom:2rem;line-height:1.6;transition:color .3s}.not-found{text-align:center;padding-top:8rem}.not-found a{color:var(--text)}.track-card{-webkit-backdrop-filter:blur(8px);cursor:pointer;will-change:transform, box-shadow;background:radial-gradient(circle at 28% 73%,#78787806 0%,#0000 60%),radial-gradient(circle at 67% 27%,#8c8c8c05 0%,#0000 60%),linear-gradient(135deg,#fffffff2 0%,#fcfcfce6 100%);border:1px solid #c8c8c84d;border-radius:14px;flex-direction:column;align-items:flex-start;width:100%;min-width:0;max-width:900px;margin:2rem auto;padding:.5rem 1rem;transition:box-shadow .2s,transform .2s,background .3s;display:flex;overflow:visible;transform:translate(0,0);box-shadow:0 2px 12px #00000014}.track-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #0000001f}.dark .track-card{background:radial-gradient(circle at 28% 73%,#c8c8c806 0%,#0000 60%),radial-gradient(circle at 67% 27%,#b4b4b405 0%,#0000 60%),linear-gradient(135deg,#1e1e1ef2 0%,#191919e6 100%);border:1px solid #6464644d;box-shadow:0 2px 12px #0000004d}.dark .track-card:hover{box-shadow:0 4px 20px #0006}.track-title-col{flex-direction:column;align-items:flex-start;width:100%;transition:all .3s;display:flex}.track-card audio{min-width:220px;max-width:400px;margin:.1rem 0;display:block}.art-image-container{box-sizing:border-box;margin-top:1rem;padding:0 clamp(1rem,3vw,2rem)}.gradient-overlay-container{z-index:-2;pointer-events:none;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.gradient-overlay{mix-blend-mode:soft-light;opacity:.4;width:100%;height:100%;position:absolute}.gradient-overlay-1{background:radial-gradient(circle at 18% 84%,#4338ca1f 0%,#0000 50%);animation:25s ease-in-out infinite alternate gradientFloat1}.gradient-overlay-2{background:radial-gradient(circle at 83% 17%,#6b46c11a 0%,#0000 50%);animation:30s ease-in-out -10s infinite alternate-reverse gradientFloat2}.gradient-overlay-3{background:radial-gradient(circle at 47% 53%,#1e40af14 0%,#0000 60%);animation:35s ease-in-out -5s infinite alternate gradientFloat3}@keyframes gradientFloat1{0%{opacity:.3;transform:translate(0)scale(1)}to{opacity:.5;transform:translate(30px,-20px)scale(1.1)}}@keyframes gradientFloat2{0%{opacity:.2;transform:translate(0)scale(1)}to{opacity:.4;transform:translate(-25px,30px)scale(1.15)}}@keyframes gradientFloat3{0%{opacity:.15;transform:translate(0)scale(1)}to{opacity:.35;transform:translate(15px,-15px)scale(.95)}}@media screen and (width<=768px){.fixed-header{min-height:60px;padding:.6rem .5rem}.fixed-header a{white-space:nowrap;margin:0 .2rem;padding:.3rem .4rem .2rem;font-size:.85rem!important}.header-nav-center{flex-wrap:nowrap;gap:.1rem;overflow:auto hidden}.header-right button{padding:.25rem .4rem!important;font-size:.8rem!important}.page-content-top{padding-top:4rem}.bio{padding:0 1rem}.art-image,.artwork-placeholder,.about-photo{margin:2rem auto 1rem}}@media screen and (width<=480px){.fixed-header{padding:.5rem .3rem}.fixed-header a{margin:0 .1rem;padding:.25rem .3rem .15rem;font-size:.8rem!important}.header-spacer{flex:.1}.header-right{min-width:50px}.header-right button{margin:0!important;padding:.2rem .3rem!important;font-size:.75rem!important}.page-content-top{padding-top:3.5rem}.art-image,.artwork-placeholder,.about-photo{margin:1.5rem auto .8rem}}@media screen and (width<=768px){#animation-bg{transform:scale(.8)}}@media screen and (width<=480px){#animation-bg{opacity:.8;transform:scale(.7)}}*{box-sizing:border-box;word-break:break-word;max-width:100vw}@media (prefers-reduced-motion:reduce){.gradient-overlay,.gradient-overlay-1,.gradient-overlay-2,.gradient-overlay-3{animation:none!important}.fixed-header a,.track-link,.bio .social-links a,.track-card,.theme-toggle{transition:none!important;transform:none!important}.fade-in{opacity:1!important;animation:none!important}}.dark .gradient-overlay-1{background:radial-gradient(circle at 18% 84%,#93c5fd14 0%,#0000 50%)}.dark .gradient-overlay-2{background:radial-gradient(circle at 83% 17%,#a78bfa0f 0%,#0000 50%)}.dark .gradient-overlay-3{background:radial-gradient(circle at 47% 53%,#818cf80d 0%,#0000 60%)}.audio-player-container{opacity:0;transform-origin:top;max-height:0;margin:0;padding:0;transition:max-height .3s,opacity .25s 50ms;overflow:hidden}.audio-player-container.expanded{opacity:1;max-height:120px;margin:15px 0 5px;padding:5px 0}.audio-player-container audio{width:100%;min-width:320px;max-width:600px;height:54px;min-height:54px;transition:opacity .3s;display:block}.audio-player-container audio::-webkit-media-controls-panel{background-color:#ffffffe6}.dark .audio-player-container audio::-webkit-media-controls-panel{background-color:#282828e6}@keyframes simpleBackgroundMove{0%{background-position:0 0}to{background-position:40px 40px}}
