@font-face{font-family:MuseoModerno;src:url(/assets/MuseoModerno-Variable-latin-6Q8XTiLi.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Sora;src:url(/assets/Sora-Variable-latin-BUlRykrX.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Inter;src:url(/assets/Inter-Variable-latin-Dx4kXJAl.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Variable-latin-B9CIFXIH.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{--font-logo: "MuseoModerno", "Inter", sans-serif;--font-headline: "Inter", "Pretendard Variable", "Noto Sans KR", sans-serif;--font-body: "Inter", "Pretendard Variable", "Noto Sans KR", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--header-height: 52px;--footer-height: 24px;--bg: #f5f6f7;--panel-bg: rgba(255, 255, 255, .95);--header-bg: rgba(248, 249, 250, .95);--line: #dcdede;--line-strong: #a4a7ab;--text: #212529;--text-dim: #797c80;--accent: #111111;--accent-text: #ffffff;--hover-bg: rgba(0, 0, 0, .04);color:var(--text);background:var(--bg)}:root[data-theme-mode=dark]{--bg: #101113;--panel-bg: rgba(21, 22, 25, .95);--header-bg: rgba(14, 15, 17, .95);--line: #2b2d35;--line-strong: #4f5360;--text: #eceff3;--text-dim: #8b8f99;--accent: #f0f0f0;--accent-text: #111111;--hover-bg: rgba(255, 255, 255, .05)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden}body{min-height:100vh;font-family:var(--font-body);color:var(--text);background:var(--bg);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:80px 80px;background-attachment:fixed;opacity:1;animation:gridSlide 7.5s linear infinite}@keyframes gridSlide{0%{background-position:0 0,0 0}to{background-position:-80px 0,-80px 0}}button,input,select{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.app-shell{height:100vh;display:grid;grid-template-rows:var(--header-height) 1fr}.app-header{z-index:90;border-bottom:1px solid var(--line-strong);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 16px}.brand-wrap{display:grid;gap:2px}.brand-mark{margin:0;font-family:var(--font-logo);font-size:1.55rem;font-weight:900;line-height:.9;letter-spacing:.03em;text-transform:uppercase;transform:scaleX(.88);transform-origin:left center;font-variation-settings:"wght" 900,"wdth" 74}.brand-tagline{margin:0;font-family:var(--font-headline);font-size:.68rem;color:var(--text-dim);letter-spacing:.02em}.header-controls{display:flex;align-items:center;gap:10px}.theme-toggles{display:flex;align-items:center;gap:4px}.theme-switch>span{font-size:11px;color:var(--text-dim)}.app-main{display:grid;grid-template-columns:minmax(300px,.94fr) minmax(560px,1.45fr) minmax(360px,.9fr);gap:12px;padding:12px;min-height:0;overflow:hidden}.right-column{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;overflow:hidden}.right-column>.mastering-panel{flex:0 0 auto;min-height:0}.right-column>.visualizer-card{flex:1 1 auto;min-height:150px}.panel{border:1px solid var(--line-strong);background:var(--panel-bg);display:grid;min-height:0;box-shadow:4px 4px #0000000d;overflow:hidden;position:relative}:root[data-theme-mode=dark] .panel{box-shadow:4px 4px #0006}.panel:before{content:"";position:absolute;top:0;left:0;width:10px;height:10px;background:var(--bg);border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.queue-panel{grid-template-rows:auto auto auto auto 1fr}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 22px;border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-family:var(--font-headline);font-size:14px;font-weight:640;letter-spacing:.01em}.meta-chip{border:1px solid var(--line);padding:3px 8px;font-size:11px;color:var(--text-dim)}.panel-subhead{padding:6px 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.panel-subhead.with-action{display:flex;justify-content:space-between;align-items:center;gap:8px}.panel-subhead h3{margin:0;font-family:var(--font-headline);font-size:12px;font-weight:600}.queue-dropzone{margin:8px 10px 0;border:1px dashed var(--line-strong);padding:8px 10px;font-size:11px;color:var(--text-dim)}.queue-dropzone.is-drag-over{border-color:var(--accent);color:var(--text)}.queue-dropzone.is-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.queue-actions{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.global-progress-wrap{padding:10px;border-bottom:1px solid var(--line);background:var(--hover-bg)}.global-progress-text{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--text);font-weight:500;margin-bottom:6px;letter-spacing:.02em}.global-progress-track{height:4px;border:1px solid var(--line-strong);overflow:hidden;background:var(--bg)}.global-progress-fill{height:100%;background:var(--accent);transition:width .2s ease-out}.primary-action-btn{position:relative;background:transparent;border:1px solid var(--line-strong);padding:10px 16px;cursor:pointer;font-family:var(--font-body);font-weight:640;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text);transition:all .12s ease;z-index:1;text-align:center;display:flex;justify-content:center;align-items:center;gap:8px;width:100%;min-height:38px}.primary-action-btn:hover{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.primary-action-btn:active{font-size:12px;transition:font-size 50ms ease}.primary-action-btn:disabled{opacity:.4;cursor:not-allowed;background:transparent;color:var(--text-dim);border-color:var(--line-strong)}.compact-btn,.wave-controls button{position:relative;background:transparent;border:none;padding:6px 11px;cursor:pointer;font-family:var(--font-body);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.04em;transition:transform .12s ease,color .12s ease;z-index:1;isolation:isolate}.compact-btn:before,.wave-controls button:before,.dropdown-trigger:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--line-strong);clip-path:polygon(6px 0,100% 0,100% 100%,0 100%,0 6px);z-index:-2;transition:background .12s ease}.compact-btn:after,.wave-controls button:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;background:var(--panel-bg);clip-path:polygon(5.5px 0,100% 0,100% 100%,0 100%,0 5.5px);z-index:-1;transition:background .12s ease}.compact-btn:hover,.wave-controls button:hover{color:var(--accent-text);transform:scale(.98)}.compact-btn:hover:before,.wave-controls button:hover:before,.dropdown-trigger:hover:before{background:var(--accent)}.compact-btn:hover:after,.wave-controls button:hover:after{background:var(--accent)}.compact-btn:active,.wave-controls button:active{transform:scale(.95)}.compact-btn:disabled,.wave-controls button:disabled,.icon-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;color:var(--text-dim)}.queue-list-head{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--line);font-size:11px;color:var(--text-dim)}.queue-scroll,.ab-list-scroll,.mastering-scroll{min-height:0}.scroll-area{overflow:auto;min-height:0}.scroll-area::-webkit-scrollbar{width:6px;height:6px}.scroll-area::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:0}.scroll-area::-webkit-scrollbar-thumb:hover{background:var(--accent)}.scroll-area::-webkit-scrollbar-track{background:#7f7f7f0d;border-left:1px solid var(--line)}.dropdown{position:relative;min-width:72px}.dropdown-trigger{width:100%;border:none;background:transparent;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 10px;cursor:pointer;font-family:var(--font-body);font-size:11px;position:relative;z-index:1;isolation:isolate;color:var(--text);transition:color .12s ease}.dropdown-trigger:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--line-strong);clip-path:polygon(6px 0,100% 0,100% 100%,0 100%,0 6px);z-index:-2;transition:background .12s ease}.dropdown-trigger:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;background:var(--bg);clip-path:polygon(5.5px 0,100% 0,100% 100%,0 100%,0 5.5px);z-index:-1;transition:background .12s ease}.dropdown-trigger:hover{color:var(--accent-text)}.dropdown-trigger:hover:after{background:var(--accent)}.dropdown-caret{font-size:10px;color:var(--text-dim)}.dropdown-menu{min-width:100%;border:1px solid var(--line-strong);background:var(--panel-bg);list-style:none;margin:0;padding:0}.dropdown-item{width:100%;border:none;background:transparent;text-align:left;padding:7px 10px;cursor:pointer;font-family:var(--font-body);font-size:11px;transition:background .12s ease;white-space:nowrap}.dropdown-item:hover,.dropdown-item.is-active{background:var(--hover-bg);color:var(--accent)}.track-list,.ab-track-list{list-style:none;margin:0;padding:0}.track-row{border-bottom:1px solid var(--line);padding:8px 10px;display:grid;gap:6px;position:relative}.track-row.is-active-track{background:#7f7f7f24}.track-main{display:flex;gap:8px;align-items:center}.track-main.compact{justify-content:space-between}.track-main strong{font-size:12px;font-weight:540}.track-select{display:grid;place-items:center}.track-name-btn{border:none;background:transparent;padding:0;margin:0;text-align:left;cursor:pointer;flex:1}.track-name-btn strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.icon-btn{border:1px solid var(--line);background:transparent;width:24px;height:24px;padding:0;display:flex;justify-content:center;align-items:center;cursor:pointer;line-height:1}.icon-btn:hover{border-color:var(--accent)}.icon-btn.is-active{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.icon-btn.danger{color:var(--text-dim)}.icon-btn.danger:hover{color:#c95163}.track-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:transparent;pointer-events:none}.track-progress.wide{margin-left:0}.track-progress-fill{height:100%;background:var(--accent);transition:width .12s linear}.track-error{margin-left:30px;font-size:11px;color:#bf4d4d}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--line-strong);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.track-empty{padding:14px 12px;font-size:12px;color:var(--text-dim)}.player-panel{grid-template-rows:auto 1fr}.wave-stack{padding:10px;display:grid;grid-template-rows:1fr 1fr auto;gap:8px;border-bottom:none;min-height:0}.wave-block{border:1px solid var(--line);min-height:0;display:grid;grid-template-rows:auto 1fr}.wave-block header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:5px 8px;font-size:11px}.wave-label-wrap{display:flex;align-items:center;gap:7px}.wave-label-wrap strong{font-size:12px}.time-readout{color:var(--accent);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.05em}.wave-row{display:grid;grid-template-columns:auto 1fr;min-height:0}.wave-controls{border-right:1px solid var(--line);padding:7px;display:grid;align-content:center;gap:6px}.wave-controls button{display:flex;align-items:center;gap:6px;width:88px;justify-content:center}.wave-canvas{min-height:0;height:100%;cursor:pointer}.wave-canvas canvas{display:block;width:100%;height:100%}.ab-track-row{display:grid;grid-template-columns:1fr auto;align-items:center;border-bottom:1px solid var(--line);padding:7px 10px;font-size:12px;cursor:pointer}.ab-track-row.is-selected{background:#7f7f7f2b;font-weight:620}.mastering-panel{grid-template-rows:auto 1fr auto}.mastering-head{align-items:center}.preset-field{display:block}.preset-field span{font-size:11px;color:var(--text-dim)}.mastering-scroll{padding:12px}.control-group{border:1px solid var(--line);margin-bottom:12px}.control-group h3{margin:0;font-family:var(--font-headline);font-size:12px;font-weight:620;padding:6px 8px;border-bottom:1px solid var(--line)}.control-group.low-priority{opacity:.95}.control-row,.toggle-row{padding:0 10px;height:32px;display:flex;align-items:center;border-bottom:1px dashed var(--line);transition:background .15s ease;box-sizing:border-box}.control-row:hover,.toggle-row:hover{background:var(--hover-bg)}.control-row:last-child,.toggle-row:last-child{border-bottom:none}.control-row.compact{display:grid;grid-template-columns:104px 1fr;gap:8px;align-items:center;width:100%}.toggle-row.compact{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%}.control-label{font-size:11px;color:var(--text-dim);white-space:nowrap}.control-row.compact .control-label{width:104px;overflow:hidden;text-overflow:ellipsis}.control-main{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.control-main strong{font-size:11px;color:var(--text-dim);min-width:62px;text-align:right}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;margin:0;background:transparent;cursor:pointer}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{width:100%;height:2px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--progress, 0%),var(--line) var(--progress, 0%),var(--line) 100%);border:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:14px;width:8px;background:var(--accent);margin-top:-6px;border:none;border-radius:0;transition:transform .1s ease,background .1s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scaleY(1.5);background:var(--text)}.toggle-row input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border:1px solid var(--line-strong);background:var(--bg);cursor:pointer;position:relative;transition:all .12s ease;justify-self:end;margin:0}.toggle-row input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.toggle-row input[type=checkbox]:checked:after{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;background:var(--accent-text)}.output-format-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;padding:8px 10px}.inline-field{display:flex;justify-content:space-between;align-items:center;gap:10px}.inline-field.compact{display:flex;flex-direction:column;align-items:stretch;gap:4px}.inline-field span{font-size:11px;color:var(--text-dim)}.inline-link{text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:currentColor;transition:opacity .12s ease}.inline-link:hover{opacity:.74}.app-credit{border-top:1px solid var(--line);padding:8px 12px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--text-dim);font-family:var(--font-mono);background:var(--header-bg)}.has-tooltip{position:relative}.has-tooltip:before,.has-tooltip:after{display:none!important}.floating-tooltip{position:fixed;z-index:2000;max-width:320px;border:1px solid var(--line-strong);background:var(--panel-bg);color:var(--text);font-size:11px;line-height:1.4;padding:7px 9px;pointer-events:none;text-wrap:pretty;box-shadow:0 8px 20px #080b103d;transition:opacity .12s ease,transform .12s ease}@media (max-width: 1400px){.app-main{grid-template-columns:minmax(280px,1fr) minmax(340px,1.3fr) minmax(300px,1fr)}.wave-controls button{width:76px}}@media (max-width: 1180px){.app-main{grid-template-columns:minmax(300px,1fr) minmax(340px,1fr)}.mastering-panel{grid-column:1 / -1}}@media (max-width: 900px){html,body,#root{overflow:auto}.app-shell{height:auto;min-height:100vh;grid-template-rows:var(--header-height) auto var(--footer-height)}.app-main{grid-template-columns:1fr;min-height:auto;overflow:visible}.queue-panel,.player-panel,.mastering-panel{min-height:360px}.output-format-row{grid-template-columns:1fr}}@media (max-width: 680px){.app-header{padding:6px 10px}.brand-tagline{display:none}.header-controls{gap:6px}.theme-switch{min-width:120px}.wave-row{grid-template-columns:1fr}.wave-controls{border-right:none;border-bottom:1px solid var(--line);grid-auto-flow:column;justify-content:start}}
