@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;max-width:100%;display:inline-block;position:relative}.ReactCrop *,.ReactCrop :before,.ReactCrop :after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{max-width:100%;max-height:inherit;display:block}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px);position:absolute;inset:0}.ReactCrop__crop-selection{cursor:move;position:absolute;top:0;left:0;transform:translate(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";border:1px solid var(--rc-border-color);opacity:.3;position:absolute;inset:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){color:#fff;background-image:linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;animation:1s linear infinite marching-ants}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";background-color:#fff6;display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6667%}.ReactCrop__drag-handle{width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color);position:absolute}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;top:0;left:0;transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;top:0;left:50%;transform:translate(-50%,-50%)}.ReactCrop .ord-ne{cursor:ne-resize;top:0;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-se{cursor:se-resize;bottom:0;right:0;transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.ReactCrop .ord-w{cursor:w-resize;top:50%;left:0;transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{width:100%;height:var(--rc-drag-bar-size);top:0;left:0;transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{width:var(--rc-drag-bar-size);height:100%;top:0;right:0;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{width:100%;height:var(--rc-drag-bar-size);bottom:0;left:0;transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{width:var(--rc-drag-bar-size);height:100%;top:0;left:0;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}:root{--color-paper:oklch(12% .015 250);--color-paper-2:oklch(16% .02 250);--color-paper-3:oklch(22% .025 250);--color-paper-4:oklch(30% .03 250);--color-ink:oklch(88% .01 250);--color-ink-2:oklch(70% .015 250);--color-ink-3:oklch(55% .02 250);--color-accent:oklch(72% .14 210);--color-accent-2:oklch(60% .12 210);--color-accent-glow:oklch(72% .14 210/.15);--color-accent-ink:oklch(15% .02 250);--color-focus:var(--color-accent);--color-error:oklch(58% .2 30);--color-success:oklch(65% .15 150);--font-display:"JetBrains Mono", "SF Mono", ui-monospace, monospace;--font-body:"Inter", "SF Pro", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-2xl:2rem;--text-display:3rem;--text-display-s:2.25rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.15s;--dur-base:.25s;--dur-slow:.4s;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1rem;--rule:1px solid var(--color-paper-4);--nav-height:3.5rem;--player-height:5.5rem;--max-width:82rem}@media (prefers-reduced-motion:reduce){@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-wght-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--dur-fast:0s;--dur-base:0s;--dur-slow:0s}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);color:var(--color-ink);background:var(--color-paper);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5;overflow-x:clip}body{min-height:100dvh;padding-bottom:var(--player-height);overflow-x:clip}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-body);cursor:pointer;color:var(--color-ink);background:0 0;border:none}button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}input,textarea,select{font-family:var(--font-body);font-size:var(--text-base);background:var(--color-paper-2);color:var(--color-ink);border:var(--rule);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);outline:none;width:100%}input:focus,textarea:focus,select:focus{border-color:var(--color-accent)}textarea{resize:vertical;min-height:3rem}input[type=file]{color:var(--color-ink-2);font-size:var(--text-sm);background:0 0;border:none;padding:0}input[type=file]::file-selector-button{background:var(--color-paper-3);color:var(--color-ink);border:1px solid var(--color-paper-4);border-radius:var(--radius-sm);margin-right:var(--space-sm);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);padding:6px 12px;font-weight:500}input[type=file]::file-selector-button:hover{background:var(--color-paper-4)}input[type=file]:focus-visible::file-selector-button{outline:2px solid var(--color-focus);outline-offset:2px}code,.mono{font-family:var(--font-mono)}::selection{background:var(--color-accent);color:var(--color-accent-ink)}*{scrollbar-width:thin;scrollbar-color:var(--color-paper-4) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-paper-4);border:2px solid var(--color-paper);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--color-paper-3)}input,textarea,select{caret-color:var(--color-accent);accent-color:var(--color-accent)}a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}.app-layout{max-width:var(--max-width);padding:0 var(--space-md);margin:0 auto}.nav{height:var(--nav-height);padding:0 var(--space-lg);z-index:50;background:var(--color-paper);border-bottom:var(--rule);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.nav-brand{align-items:center;gap:var(--space-sm);font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);color:var(--color-ink);text-decoration:none;display:inline-flex}.nav-links{gap:var(--space-lg);align-items:center;display:flex}.nav-links a{font-size:var(--text-sm);color:var(--color-ink-2)}.nav-links a:hover{color:var(--color-ink);text-decoration:none}.card{background:var(--color-paper-2);border-radius:var(--radius-md);padding:var(--space-md);transition:background var(--dur-fast) var(--ease-out)}.card:hover{background:var(--color-paper-3)}.card-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:500}.card-meta{font-size:var(--text-sm);color:var(--color-ink-3);margin-top:var(--space-xs)}.grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));display:grid}@media (width<=768px){.grid{grid-template-columns:1fr}}.page-cols{gap:var(--space-lg);grid-template-columns:30% 70%;align-items:start;display:grid}@media (width<=768px){.page-cols{grid-template-columns:1fr}}.page-header{padding:var(--space-2xl) 0 var(--space-lg)}.page-header h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500}.btn{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:background var(--dur-fast) var(--ease-out), opacity var(--dur-fast);font-weight:500;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-accent-ink)}.btn-primary:hover{opacity:.85}.btn-ghost{color:var(--color-ink-2);background:0 0}.btn-ghost:hover{background:var(--color-paper-3);color:var(--color-ink)}.form-group{margin-bottom:var(--space-md)}.form-group label{font-size:var(--text-sm);margin-bottom:var(--space-xs);color:var(--color-ink-2);font-weight:500;display:block}.timestamp-link{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer}.timestamp-link:hover{text-decoration:underline}.cover-image{object-fit:cover;border-radius:var(--radius-md);flex-shrink:0;width:180px;height:180px}@media (width<=640px){.cover-image{width:120px;height:120px}}.waveform-canvas{cursor:pointer;touch-action:pan-y;border-radius:var(--radius-sm);width:100%;display:block}.waveform-canvas:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.track-hero{gap:var(--space-lg);background:var(--color-paper-2);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-lg);grid-template-columns:minmax(0,1fr) auto;align-items:stretch;display:grid}.track-hero__main{gap:var(--space-md);flex-direction:column;min-width:0;display:flex}.track-hero__top{align-items:center;gap:var(--space-md);flex-wrap:wrap;min-width:0;display:flex}.track-hero__titles{flex:1;min-width:0}.track-hero__author{font-size:var(--text-sm);color:var(--color-ink-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.track-hero__title{font-family:var(--font-display);font-size:var(--text-xl);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:500;overflow:hidden}.track-hero__time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.track-hero__time strong{color:var(--color-accent);font-weight:500}.track-hero__action{flex-shrink:0}@media (width<=640px){.track-hero__action .btn{padding:var(--space-xs) var(--space-sm)}.track-hero__action .btn-label{display:none}.track-hero__top{gap:var(--space-sm)}.track-hero__time{display:none}}.track-hero__play{background:var(--color-accent);width:3rem;height:3rem;color:var(--color-accent-ink);transition:background-color var(--dur-fast) var(--ease-out), transform .1s var(--ease-out);border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative}@media (hover:hover){.track-hero__play:hover{background:var(--color-accent-2)}}.track-hero__play:active{transform:translateY(1px)}.track-hero__play:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.track-hero__play:disabled{opacity:.5;cursor:not-allowed}.track-hero__play svg{fill:currentColor;width:1.25rem;height:1.25rem;display:block}.track-hero__spinner{border:2px solid var(--color-accent-ink);opacity:0;width:1.25rem;height:1.25rem;animation:track-hero-spin .7s linear infinite, track-hero-fade .1s var(--ease-out) .15s both;border-top-color:#0000;border-radius:50%}@keyframes track-hero-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.track-hero__spinner{opacity:.5;animation:none}}@keyframes track-hero-spin{to{transform:rotate(360deg)}}.track-hero__wave{flex:1;min-height:5rem;display:flex;position:relative}.track-hero__cover{aspect-ratio:1;border-radius:var(--radius-md);object-fit:cover;align-self:center;width:clamp(5rem,18vw,13rem)}.track-hero__cover--empty{background:var(--color-paper-3);color:var(--color-ink-3);font-family:var(--font-display);font-size:var(--text-2xl);place-items:center;display:grid}.track-hero__error{color:var(--color-error);font-size:var(--text-sm)}@media (width>=768px){.track-hero{padding:var(--space-md);align-items:center}.track-hero__wave{flex:unset;min-height:unset;height:3rem}}.title-old{color:var(--color-ink-2)}@media (width<=768px){.track-hero{grid-template-columns:1fr}.track-hero__cover-wrap{justify-items:center;display:grid}}.form-grid{gap:var(--space-lg);grid-template-columns:1fr 1fr;align-items:start;display:grid}.form-section{background:var(--color-paper-2);border:var(--rule);border-radius:var(--radius-md);padding:var(--space-lg)}.form-section__title{font-family:var(--font-display);font-size:var(--text-md);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:var(--rule);font-weight:500}.form-section__head{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:var(--rule);display:flex}.form-section__head .form-section__title{border-bottom:none;margin-bottom:0;padding-bottom:0}@media (width<=768px){.form-grid{gap:var(--space-md);grid-template-columns:1fr}.form-section{padding:var(--space-md)}}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-ink-2);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast);place-items:center;display:inline-grid}.icon-btn:hover{background:var(--color-paper-3);color:var(--color-ink)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn--danger{color:var(--color-error)}.icon-btn--danger:hover{background:var(--color-paper-3);color:var(--color-error)}.icon-btn svg{width:16px;height:16px}.btn svg{width:14px;height:14px}.chip{border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);border:1px solid;padding:1px 8px;font-weight:500;line-height:1.7;display:inline-block}.chip--success{color:var(--color-success)}.chip--danger{color:var(--color-error)}.card-cover{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);width:100%;margin-bottom:var(--space-sm);display:block}.card-cover--empty{background:var(--color-paper-3);color:var(--color-ink-3);font-family:var(--font-display);font-size:var(--text-2xl);place-items:center;display:grid}.hero-note{font-size:var(--text-xs);color:var(--color-ink-3);text-align:center;margin-top:var(--space-xs)}.tracklist-row{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);cursor:default;display:flex}.tracklist-row--active{background:var(--color-paper-3)}.tracklist-head{margin-bottom:var(--space-sm);justify-content:space-between;align-items:baseline;display:flex}.tracklist-head h3{font-family:var(--font-display);font-size:var(--text-sm);color:var(--color-ink-3);margin:0}.tracklist-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums}.tracklist-index{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums;min-width:22px}.eq{flex-shrink:0;align-items:flex-end;gap:2px;height:14px;display:inline-flex}.eq span{background:var(--color-accent);transform-origin:bottom;border-radius:1px;width:2px;height:14px;animation:.9s ease-in-out infinite eq-meter}.eq span:nth-child(2){animation-delay:.15s}.eq span:nth-child(3){animation-delay:.3s}@keyframes eq-meter{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.eq span{animation:none;transform:scaleY(.6)}}.tracklist-thumb{border-radius:var(--radius-sm);background:var(--color-paper-3);width:48px;height:48px;color:var(--color-ink-3);flex-shrink:0;place-items:center;display:grid;overflow:hidden}.tracklist-thumb img{object-fit:cover;width:100%;height:100%}.tracklist-thumb svg{width:18px;height:18px}.tracklist-thumb-wrap{flex-shrink:0;line-height:0;display:inline-flex;position:relative}.player-bar{height:var(--player-height);background:var(--color-paper-2);border-top:var(--rule);z-index:100;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.player-bar__progress{align-items:center;width:100%;height:36px;display:flex}.player-progress{appearance:none;cursor:pointer;background:0 0;border:none;outline:none;width:100%;height:100%;margin:0}.player-progress::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--color-accent) 0%, var(--color-accent-2) var(--progress,0%), var(--color-paper-4) var(--progress,0%));border-radius:2px;height:3px}.player-progress::-webkit-slider-thumb{appearance:none;background:var(--color-accent);border:2px solid var(--color-paper-2);border-radius:50%;width:12px;height:12px;margin-top:-4.5px}.player-progress::-moz-range-track{background:var(--color-paper-4);border-radius:2px;height:3px}.player-progress::-moz-range-progress{background:var(--color-accent-2);border-radius:2px;height:3px}.player-progress::-moz-range-thumb{background:var(--color-accent);border:2px solid var(--color-paper-2);border-radius:50%;width:8px;height:8px}.player-progress:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.player-bar__controls{align-items:center;gap:var(--space-md);padding:0 var(--space-lg);height:calc(var(--player-height) - 36px);display:flex}.player-bar__nav{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-ink-2);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast);place-items:center;padding:0;display:grid}.player-bar__nav:hover{background:var(--color-paper-3);color:var(--color-ink)}.player-bar__nav:disabled{opacity:.4;cursor:not-allowed}.player-bar__nav svg{width:16px;height:16px}.player-bar__seek{width:36px;height:36px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast);place-items:center;padding:0;display:grid}.player-bar__seek:hover{background:var(--color-paper-3);color:var(--color-ink)}.player-bar__seek:disabled{opacity:.4;cursor:not-allowed}.player-bar__play{background:var(--color-accent);width:36px;height:36px;color:var(--color-accent-ink);transition:background-color var(--dur-fast) var(--ease-out), transform .1s var(--ease-out);border-radius:50%;place-items:center;padding:0;display:grid}.player-bar__play:hover{background:var(--color-accent-2)}.player-bar__play:active{transform:translateY(1px)}.player-bar__play:disabled{opacity:.5;cursor:not-allowed}.player-bar__play svg{width:16px;height:16px}.player-bar__title{min-width:0;padding:0 var(--space-md);font-family:var(--font-display);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.player-bar__time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.seek-toast{bottom:calc(var(--player-height) + var(--space-md));z-index:400;pointer-events:none;background:var(--color-paper-3);border:1px solid var(--color-paper-4);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);font-variant-numeric:tabular-nums;position:fixed;left:50%;transform:translate(-50%)}.range{appearance:none;background:var(--color-paper-4);cursor:pointer;border-radius:2px;outline:none;height:3px}.range::-webkit-slider-thumb{appearance:none;background:var(--color-accent);border:none;border-radius:50%;width:12px;height:12px}.range::-moz-range-thumb{background:var(--color-accent);border:none;border-radius:50%;width:12px;height:12px}.range::-moz-range-progress{background:var(--color-accent-2);border-radius:2px;height:3px}.range:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.player-bar__now{align-items:center;gap:var(--space-sm);min-width:0;padding:0 var(--space-md);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;display:flex}.player-bar__cover{border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;width:40px;height:40px}.player-bar__cover--empty{background:var(--color-paper-3);color:var(--color-ink-3);font-family:var(--font-display);font-size:var(--text-sm);place-items:center;display:grid}.player-bar__title-block{flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.player-bar__badge{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-3);line-height:1}.player-bar__title{flex:none;width:100%}.player-bar__volume-btn{flex-shrink:0;width:32px;height:32px}.player-bar__volume{flex-shrink:0;width:88px}.player-bar__queue-btn{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);padding:4px var(--space-sm);border-radius:var(--radius-sm);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast)}.player-bar__queue-btn:hover{background:var(--color-paper-3);color:var(--color-ink)}.player-bar__queue{bottom:calc(100% + 4px);right:var(--space-lg);width:min(360px, calc(100vw - var(--space-lg) * 2));background:var(--color-paper-3);border:1px solid var(--color-paper-4);border-radius:var(--radius-md);padding:var(--space-xs);z-index:150;max-height:50vh;position:absolute;overflow-y:auto}.player-bar__queue-item{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:left;transition:background var(--dur-fast) var(--ease-out);display:flex}.player-bar__queue-item:hover{background:var(--color-paper-2)}.player-bar__queue-item[data-active]{background:var(--color-paper-3);color:var(--color-accent)}.player-bar__queue-index{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums;flex-shrink:0}.player-bar__queue-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.player-bar__queue-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums;flex-shrink:0}@media (width<=640px){.player-bar__seek,.player-bar__volume,.player-bar__badge,.player-bar__nav,.player-bar__volume-btn{display:none}.player-bar__time{flex-shrink:0}.player-bar__controls{gap:var(--space-sm)}}.fullscreen-player{display:none}@media (width<=640px){.fullscreen-player{z-index:300;background:var(--color-paper);display:block;position:fixed;inset:0;overflow:hidden}.fullscreen-player__bg{filter:blur(48px)saturate(1.2);opacity:.5;background-position:50%;background-size:cover;position:absolute;inset:-40px}.fullscreen-player__scrim{background:linear-gradient(oklch(12% .015 250/.7) 0%,oklch(12% .015 250/.85) 55%,oklch(12% .015 250/.95) 100%);position:absolute;inset:0}.fullscreen-player__inner{height:100%;padding:calc(var(--space-md) + env(safe-area-inset-top)) var(--space-lg) calc(var(--space-lg) + env(safe-area-inset-bottom));flex-direction:column;display:flex;position:relative}.fullscreen-player__top{justify-content:space-between;align-items:flex-start;gap:var(--space-md);display:flex}.fullscreen-player__now{min-width:0;padding-right:var(--space-xs);font-size:var(--text-sm);flex-direction:column;gap:2px;display:flex}.fullscreen-player__min{background:var(--color-paper-3);flex-shrink:0}.fullscreen-player__min:hover{background:var(--color-paper-4)}.fullscreen-player__art{min-height:0;padding:var(--space-md) 0;flex:1;justify-content:center;align-items:center;display:flex}.fullscreen-player__cover{aspect-ratio:1;border-radius:var(--radius-lg);object-fit:cover;width:min(78vw,320px)}.fullscreen-player__cover--empty{background:var(--color-paper-3);color:var(--color-ink-3);font-family:var(--font-display);font-size:var(--text-display-s);place-items:center;display:grid}.fullscreen-player__seek{padding-top:var(--space-md);flex-shrink:0}.fullscreen-player__seek .player-progress{height:44px}.fullscreen-player__seek .player-progress::-webkit-slider-thumb{width:16px;height:16px;margin-top:-6.5px}.fullscreen-player__seek .player-progress::-moz-range-thumb{width:12px;height:12px}.fullscreen-player__time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.fullscreen-player__controls{justify-content:center;align-items:center;gap:var(--space-md);padding-top:var(--space-md);flex-shrink:0;display:flex}.fullscreen-player__skip{width:44px;height:44px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);transition:color var(--dur-fast) var(--ease-out), transform .1s var(--ease-out);border-radius:50%;place-items:center;padding:0;display:grid}.fullscreen-player__skip:active{color:var(--color-ink);transform:scale(.94)}.fullscreen-player__skip:disabled{opacity:.4;cursor:not-allowed}.fullscreen-player__nav{background:var(--color-paper-3);width:52px;height:52px;color:var(--color-ink);transition:background var(--dur-fast) var(--ease-out), transform .1s var(--ease-out);border-radius:50%;place-items:center;padding:0;display:grid}.fullscreen-player__nav:active{transform:scale(.94)}.fullscreen-player__nav:disabled{opacity:.4;cursor:not-allowed}.fullscreen-player__nav svg{fill:currentColor;width:22px;height:22px;display:block}.fullscreen-player__play{background:var(--color-accent);width:76px;height:76px;color:var(--color-accent-ink);transition:background-color var(--dur-fast) var(--ease-out), transform .1s var(--ease-out);border-radius:50%;place-items:center;padding:0;display:grid}.fullscreen-player__play:active{transform:scale(.96)}.fullscreen-player__play:disabled{opacity:.4;cursor:not-allowed}.fullscreen-player__play svg{fill:currentColor;width:30px;height:30px;display:block}.fullscreen-player__spinner{border:3px solid;border-top-color:#0000;border-radius:50%;width:32px;height:32px;animation:.7s linear infinite track-hero-spin}}.archive-readout{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);font-variant-numeric:tabular-nums;margin-top:var(--space-xs)}.card--playable{position:relative}.card-play{background:var(--color-accent);width:48px;height:48px;color:var(--color-accent-ink);opacity:0;transition:opacity var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);border-radius:50%;place-items:center;display:grid;position:absolute;top:calc(50% - 24px);left:50%;transform:translate(-50%,-50%)}.card-play svg{width:20px;height:20px}.card-play:hover{background:var(--color-accent-2)}.card-play:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;opacity:1}@media (hover:hover){.card--playable:hover .card-play{opacity:1}}@media (hover:none){.card-play{opacity:1}}.skeleton-card{border-radius:var(--radius-md);background:var(--color-paper-2);height:280px;animation:1.6s ease-in-out infinite skeleton-pulse}.skeleton-hero{border-radius:var(--radius-md);background:var(--color-paper-2);height:200px;margin-bottom:var(--space-lg);animation:1.6s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.skeleton-card,.skeleton-hero{opacity:.6;animation:none}}.empty-crate{margin:var(--space-3xl) auto;text-align:center;color:var(--color-ink-3);gap:var(--space-md);justify-items:center;display:grid}.empty-crate p{font-size:var(--text-sm)}.empty-crate svg{opacity:.8}.error-panel{margin:var(--space-2xl) 0;color:var(--color-error);gap:var(--space-md);justify-items:start;display:grid}.error-panel p{font-size:var(--text-sm)}.footer{max-width:var(--max-width);margin:var(--space-3xl) auto 0;padding:var(--space-lg) var(--space-md) var(--space-2xl);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);border-top:var(--rule);justify-content:space-between;align-items:center;display:flex}.footer a{color:var(--color-ink-3)}.footer a:hover{color:var(--color-ink)}.route-fade{animation:route-in var(--dur-base) var(--ease-out)}@keyframes route-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.site-header__banner{border-radius:var(--radius-lg);background:linear-gradient(160deg, var(--color-paper-3), var(--color-paper) 70%);border:var(--rule);align-items:flex-end;min-height:220px;display:flex;position:relative;overflow:hidden}.site-header__banner-img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.site-header__scrim{background:linear-gradient(#0000 20%,oklch(12% .015 250/.92) 100%);position:absolute;inset:0}.site-header__identity{align-items:flex-end;gap:var(--space-lg);padding:var(--space-lg) var(--space-xl);width:100%;display:flex;position:relative}.site-header__logo{border-radius:var(--radius-md);border:var(--rule);background:var(--color-paper-2);flex:none;place-items:center;width:96px;height:96px;margin-bottom:-1px;display:grid;overflow:hidden}.site-header__logo img{object-fit:cover;width:100%;height:100%}.site-header__logo-mark{color:var(--color-accent);width:48px;height:48px}.site-header__logo-mark svg{width:100%;height:100%}.site-header__text{min-width:0}.site-header__title{font-family:var(--font-display);font-weight:500;font-size:var(--text-2xl);color:var(--color-ink);text-shadow:0 1px 8px oklch(12% .015 250/.8);line-height:1.2}.site-header__description{color:var(--color-ink-2);font-size:var(--text-sm);text-shadow:0 1px 6px oklch(12% .015 250/.9);max-width:65ch}.feed-tabs{gap:var(--space-lg);margin:var(--space-lg) 0 var(--space-xl);border-bottom:var(--rule);display:flex;overflow-x:auto}.feed-tab{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-ink-3);padding:var(--space-sm) 2px calc(var(--space-sm) - 1px);white-space:nowrap;border-bottom:2px solid #0000;font-weight:500;text-decoration:none}.feed-tab:hover{color:var(--color-ink);text-decoration:none}.feed-tab--active{color:var(--color-ink);border-bottom-color:var(--color-accent)}.home-layout{gap:var(--space-xl);grid-template-columns:minmax(0,1fr) 18rem;align-items:start;display:grid}@media (width<=1024px){.home-layout{grid-template-columns:1fr}}.home-feed{gap:var(--space-md);flex-direction:column;min-width:0;display:flex}.feed-zone{gap:var(--space-md);flex-direction:column;display:flex}.feed-zone+.feed-zone{margin-top:var(--space-lg)}.feed-zone__label{font-family:var(--font-mono);font-weight:500;font-size:var(--text-sm);color:var(--color-ink-3);letter-spacing:.08em;text-transform:uppercase}.feed-empty{color:var(--color-ink-3);padding:var(--space-xl) 0}.feed-row{gap:var(--space-md);background:var(--color-paper-2);border-radius:var(--radius-md);padding:var(--space-md);transition:background-color var(--dur-fast) var(--ease-out);grid-template-columns:64px minmax(0,1fr);align-items:center;display:grid}.feed-row:hover{background:var(--color-paper-3)}.feed-row--current{background:var(--color-paper-3);box-shadow:inset 0 0 0 1px var(--color-accent-glow)}.feed-row--skeleton{background:linear-gradient(90deg, var(--color-paper-2) 25%, var(--color-paper-3) 50%, var(--color-paper-2) 75%);background-size:200% 100%;height:96px;animation:1.2s linear infinite skeleton}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.feed-row__cover-wrap{width:64px;height:64px;position:relative}.feed-row__cover{border-radius:var(--radius-sm);background:var(--color-paper-3);width:64px;height:64px;display:block;position:relative;overflow:hidden}.feed-row__cover img{object-fit:cover;width:100%;height:100%;display:block}.feed-row__plays{z-index:1;background:var(--color-paper-3);min-width:16px;height:16px;color:var(--color-ink-3);font-family:var(--font-mono);border:var(--rule);pointer-events:none;border-radius:8px;place-items:center;padding:0 4px;font-size:.625rem;font-weight:500;line-height:1;display:grid;position:absolute;top:-6px;right:-6px}.feed-row__cover-fallback{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink-3);place-items:center;display:grid;position:absolute;inset:0}.feed-row__play{color:var(--color-ink);opacity:0;transition:opacity var(--dur-fast) var(--ease-out);background:oklch(12% .015 250/.45);place-items:center;display:grid;position:absolute;inset:0}.feed-row__play svg{width:28px;height:28px;filter:drop-shadow(0 0 6px var(--color-accent-glow))}.feed-row__cover:hover .feed-row__play,.feed-row--current .feed-row__play{opacity:1}.feed-row__play:hover{color:var(--color-accent)}.feed-row__main{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.feed-row__head{align-items:baseline;gap:var(--space-sm);min-width:0;display:flex}.feed-row__kind{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);border:var(--rule);border-radius:var(--radius-sm);padding:0 var(--space-xs);flex:none;font-weight:500}.feed-row__kind--set{color:var(--color-accent);border-color:var(--color-accent-2)}.feed-row__release{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);border:var(--rule);border-radius:var(--radius-sm);padding:0 var(--space-xs);text-transform:uppercase;flex:none;margin-left:auto;font-weight:500}.feed-row__release--unreleased{color:var(--color-error);border-color:var(--color-error)}.feed-row__title{font-family:var(--font-mono);font-weight:500;font-size:var(--text-base);color:var(--color-ink);white-space:nowrap;text-overflow:ellipsis;text-decoration:none;overflow:hidden}.feed-row__title:hover{color:var(--color-accent);text-decoration:none}.feed-row__main canvas{cursor:pointer;width:100%;height:44px}.feed-row__error{color:var(--color-error);font-size:var(--text-sm)}@media (width<=640px){.feed-row{grid-template-columns:56px minmax(0,1fr)}.feed-row__cover-wrap,.feed-row__cover{width:56px;height:56px}}.home-side{gap:var(--space-lg);top:calc(var(--nav-height) + var(--space-md));flex-direction:column;display:flex;position:sticky}.home-side__label{font-family:var(--font-mono);font-weight:500;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-3);margin-bottom:var(--space-xs)}.home-side__about{color:var(--color-ink-2);font-size:var(--text-sm);max-width:42ch}.home-side__stats{gap:var(--space-xl);display:flex}.home-side__stats dt{font-size:var(--text-xs);color:var(--color-ink-3)}.home-side__stats dd{font-family:var(--font-mono);font-weight:500;font-size:var(--text-lg);color:var(--color-ink);font-variant-numeric:tabular-nums}.home-side__playlists{gap:var(--space-xs);flex-direction:column;list-style:none;display:flex}.home-side__playlists a{color:var(--color-ink-2);font-size:var(--text-sm)}.home-side__playlists a:hover{color:var(--color-accent);text-decoration:none}.sc-current{color:var(--color-success)}.sc-preview{margin-top:var(--space-sm);border-radius:var(--radius-sm);border:var(--rule);display:block}.sc-preview--banner{aspect-ratio:4;object-fit:cover;width:100%;max-width:480px}.sc-preview--logo{object-fit:cover;width:72px;height:72px}.pin-list{gap:var(--space-xs);flex-direction:column;list-style:none;display:flex}.pin-row{align-items:center;gap:var(--space-md);background:var(--color-paper);border:var(--rule);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);display:flex}.pin-row[draggable=true]{cursor:grab}.pin-row__grip{color:var(--color-ink-3);letter-spacing:-2px;-webkit-user-select:none;user-select:none}.pin-row__title{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-ink);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;text-decoration:none;overflow:hidden}.pin-row__title:hover{color:var(--color-accent);text-decoration:none}.pin-row__actions{gap:var(--space-xs);flex:none;display:flex}@media (hover:none){.feed-row__play{opacity:1}}
