:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#09090b;--surface:#141417;--card:#1c1c21;--border:#2a2a30;--accent:#7596ff;--text-primary:#f5f5f7;--text-secondary:#a1a1aa;--foreground:var(--text-primary);--muted:var(--text-secondary);--line:var(--border);--accent-soft:#232d4a;--accent-hover:#91acff;--text-on-accent:var(--background);--success:#82d4b0;--success-soft:#172c24;--danger:#ff9b9b;--danger-soft:#341d23;--header-background:#09090beb;--shadow:#00000059;--header-height:64px;--player-height:94px;--sidebar-width:240px}*{box-sizing:border-box;margin:0;padding:0}html{min-height:100%}body{min-height:100vh;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;font-family:Arial,Apple SD Gothic Neo,Noto Sans KR,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}:where(button,input,select,textarea){color:var(--foreground);background-color:var(--card);border-color:var(--line);accent-color:var(--accent)}:where(button:enabled){cursor:pointer}:where(input,textarea)::placeholder{color:var(--muted);opacity:1}:where(select) option{color:var(--foreground);background:var(--card)}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px}:where(button,input,select,textarea):disabled{cursor:default;opacity:.6}::selection{color:var(--text-on-accent);background:var(--accent)}.app-shell{min-height:100vh}.site-header{z-index:30;height:var(--header-height);background:var(--header-background);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);align-items:center;gap:20px;padding:0 24px;display:flex;position:fixed;inset:0 0 auto}.brand{flex:none;align-items:center;display:inline-flex}.brand-logo{border-radius:8px;width:200px;height:auto;display:block}.header-note{color:var(--muted);font-size:13px}.header-account,.header-auth-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.header-account{gap:14px;min-width:0}.header-account-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:180px;color:var(--foreground);font-size:15px;font-weight:700;line-height:1.2;overflow:hidden}.header-auth-link,.logout-button{border:1px solid var(--line);min-height:34px;color:var(--foreground);background:var(--surface);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.logout-button{flex-shrink:0;margin-left:0}.logout-button:disabled{cursor:wait;opacity:.6}.logout-error{color:var(--danger);font-size:12px}.desktop-nav{z-index:20;top:var(--header-height);bottom:var(--player-height);width:var(--sidebar-width);border-right:1px solid var(--line);background:var(--surface);overscroll-behavior:contain;padding:28px 16px;position:fixed;left:0;overflow-y:auto}.nav-group{gap:8px;display:grid}.nav-label{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0 12px 10px;font-size:11px;font-weight:700}.nav-link{min-height:44px;color:var(--muted);border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.nav-link:hover{background:var(--surface);color:var(--foreground)}.nav-icon{text-align:center;flex:none;justify-content:center;align-items:center;width:22px;display:inline-flex}.app-main{min-height:100vh;padding:calc(var(--header-height) + 40px) 44px calc(var(--player-height) + 46px + env(safe-area-inset-bottom));margin-left:var(--sidebar-width);min-width:0}.content-container{width:min(1180px,100%);min-width:0;margin:0 auto}.page-stack{gap:58px;display:grid}.page-eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:20px;font-size:12px;font-weight:750}.section-heading,.page-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:22px;display:flex}.section-heading h2,.page-heading h1{letter-spacing:-.04em;font-size:clamp(25px,3vw,36px)}.section-heading p,.page-heading p{color:var(--muted)}.music-card{min-width:0;position:relative}.cover-placeholder{aspect-ratio:1;border:1px solid var(--line);background:linear-gradient(145deg, var(--accent-soft), var(--card));border-radius:18px;width:100%;margin-bottom:14px}.music-card:nth-child(2) .cover-placeholder{background:linear-gradient(145deg, #322b48, var(--card))}.music-card:nth-child(3) .cover-placeholder{background:linear-gradient(145deg, #243a35, var(--card))}.music-card:nth-child(4) .cover-placeholder{background:linear-gradient(145deg, #402b32, var(--card))}.music-card-cover{object-fit:cover;background:0 0;height:auto;display:block}.music-card strong{margin-bottom:5px;padding-right:36px;font-size:14px;display:block}.music-card span{color:var(--muted);font-size:13px}.album-card strong{padding-right:0}.album-card .album-card-artist,.album-card .album-card-type{display:block}.album-card .album-card-type{text-transform:uppercase;letter-spacing:.06em;margin-top:5px;font-size:11px;font-weight:700}.list-play-button{width:30px;height:30px;color:var(--text-on-accent);background:var(--accent);cursor:pointer;border:0;border-radius:50%}.list-play-button:disabled{cursor:wait;opacity:.55}.discover-grid{grid-template-columns:1fr 280px;gap:24px;display:grid}.panel{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:24px}.panel h2{margin-bottom:17px;font-size:17px}.search-placeholder{border:1px solid var(--line);width:100%;min-height:50px;color:var(--muted);background:var(--card);text-align:left;border-radius:13px;padding:0 16px}.genre-list{flex-wrap:wrap;gap:9px;display:flex}.genre-chip{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:9px 12px;font-size:13px}.list-placeholder{grid-column:1/-1}.song-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:14px;padding:13px 0;display:grid}.song-row-link{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px;display:grid}.song-row-cover{aspect-ratio:1;background:var(--accent-soft);border-radius:10px;width:72px;height:72px}.song-row-cover-image{object-fit:cover;background:0 0;display:block}.song-row p{color:var(--muted);margin-top:4px;font-size:13px}.song-detail{grid-template-columns:minmax(260px,420px) 1fr;align-items:start;gap:clamp(34px,6vw,84px);display:grid}.song-detail-media{min-width:0}.song-cover{aspect-ratio:1;background:radial-gradient(circle at 68% 28%, #adc0ff, transparent 25%), linear-gradient(145deg, var(--accent), var(--accent-soft));box-shadow:0 28px 60px var(--shadow);border-radius:28px}.song-cover-image{background-position:50%;background-size:cover}.detail-copy h1{letter-spacing:-.065em;font-size:clamp(40px,6vw,76px);line-height:1}.artist-name{color:var(--muted);margin:16px 0 28px;font-size:18px}.play-placeholder{width:54px;height:54px;color:var(--text-on-accent);background:var(--accent);opacity:.55;border:0;border-radius:50%}.song-facts{flex-wrap:wrap;gap:18px 28px;margin-top:24px;display:flex}.song-facts div{gap:5px;display:grid}.song-facts dt,.ai-facts dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:750}.song-facts dd{font-size:14px}.song-description{max-width:620px;color:var(--muted);white-space:pre-line;margin-top:24px;font-size:15px;line-height:1.7}.lyrics-info{border-top:1px solid var(--line);margin-top:40px;padding-top:26px}.lyrics-info h2{margin-bottom:16px;font-size:16px}.song-lyrics{max-width:620px;color:var(--muted);white-space:pre-wrap;font-size:15px;line-height:1.8}.ai-info{border-top:1px solid var(--line);margin-top:40px;padding-top:26px}.ai-info h2{margin-bottom:16px;font-size:16px}.ai-facts{gap:15px;display:grid}.ai-facts div{flex-direction:column;justify-content:flex-start;align-self:start;gap:7px;display:flex}.ai-facts dd{max-width:620px;color:var(--muted);white-space:pre-line;font-size:14px;line-height:1.65}.album-detail{gap:48px;display:grid}.album-play-action{align-items:center;gap:12px;display:flex}.album-play-action span{color:var(--muted);font-size:13px;font-weight:700}.album-tracks{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:24px}.album-tracks h2{margin-bottom:12px;font-size:20px}.album-track-row{border-top:1px solid var(--line);grid-template-columns:36px minmax(0,1fr) 30px;align-items:center;gap:14px;padding:14px 0;display:grid}.album-track-number{color:var(--muted);text-align:center;font-size:13px}.album-track-row a{min-width:0}.album-track-row a strong,.album-track-row a span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.album-track-row a span{color:var(--muted);margin-top:4px;font-size:13px}.song-detail-actions{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.song-like-control{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;max-width:340px;display:flex}.song-like-control .song-like-feedback{text-align:left;white-space:normal;overflow-wrap:anywhere;max-width:100%;margin:0;font-size:11px;line-height:1.5}.secondary-link.like-button{aspect-ratio:auto;box-sizing:border-box;border:1px solid var(--line);width:112px;min-width:112px;height:54px;min-height:54px;max-height:54px;color:var(--foreground);background:linear-gradient(180deg, var(--card), var(--surface));box-shadow:inset 0 1px #ffffff0f, 0 3px 0 var(--background), 0 8px 18px var(--shadow);border-radius:11px;flex:none;justify-content:center;place-self:center start;align-items:center;gap:8px;padding:0 16px;line-height:1;transition:color .15s,border-color .15s,background-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.like-button-icon{width:20px;height:20px;color:var(--muted);flex:0 0 20px;display:block}.like-button-label{display:block}.like-button[aria-pressed=true]{color:var(--foreground);border-color:var(--danger);background:linear-gradient(180deg, var(--danger-soft), var(--surface))}.like-button[aria-pressed=true] .like-button-icon{color:var(--danger)}.like-button:not(:disabled):hover{border-color:var(--accent);box-shadow:inset 0 1px #ffffff14, 0 4px 0 var(--background), 0 10px 22px var(--shadow);transform:translateY(-1px)}.like-button[aria-pressed=true]:not(:disabled):hover{border-color:var(--danger)}.like-button:not(:disabled):active{box-shadow:inset 0 1px #ffffff0a, 0 1px 0 var(--background), 0 4px 10px var(--shadow);transform:translateY(2px)}.like-button[aria-busy=true]{color:var(--muted);border-color:var(--line)}.like-button:disabled{cursor:default;box-shadow:inset 0 1px #ffffff0a, 0 2px 0 var(--background);transform:none}.song-like-login-dialog{border:1px solid var(--line);width:min(360px,100% - 36px);max-height:calc(100% - 36px);color:var(--foreground);background:var(--surface);border-radius:20px;margin:auto;padding:24px;position:fixed;inset:0;overflow:auto}.song-like-login-dialog::backdrop{background:#0009}.song-like-login-dialog h2{font-size:20px}.song-like-login-dialog p{color:var(--muted);margin-top:12px;font-size:13px;line-height:1.6}.song-like-login-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.song-like-login-actions .secondary-link{justify-content:center;align-items:center;min-height:44px;display:inline-flex}.admin-header{justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px;display:flex}.admin-header h1{letter-spacing:-.04em;font-size:34px}.admin-header p{color:var(--muted);margin-top:8px}.secondary-link{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:999px;padding:11px 15px;font-size:13px;font-weight:700}.admin-song-actions{gap:6px;display:grid}.archive-song-button{color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s,background-color .15s}.archive-song-button:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.archive-song-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.restore-song-button{color:var(--success)}.restore-song-button:hover{color:var(--success);border-color:var(--success);background:var(--success-soft)}.restore-song-button:focus-visible{outline-color:var(--success)}.permanent-delete-song-button{color:var(--danger);cursor:pointer}.permanent-delete-song-button:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.permanent-delete-song-button:focus-visible{outline:2px solid var(--danger);outline-offset:2px}.empty-state{border:1px dashed var(--line);min-height:300px;color:var(--muted);background:var(--surface);text-align:center;border-radius:22px;place-items:center;padding:30px;display:grid}.admin-form{border:1px solid var(--line);background:var(--surface);border-radius:22px;gap:22px;max-width:780px;padding:28px;display:grid}.form-group{gap:9px;display:grid}.form-group label{font-size:13px;font-weight:700}.form-field{border:1px solid var(--line);min-height:48px;color:var(--muted);background:var(--card);border-radius:12px;align-items:center;padding:0 14px;font-size:14px;display:flex}.upload-field{border-style:dashed;justify-content:center;min-height:110px}.disabled-button{color:var(--muted);background:var(--card);border:0;border-radius:999px;justify-self:start;padding:12px 17px}.music-upload-form{max-width:920px}.form-section{border:0;border-bottom:1px solid var(--line);gap:18px;padding:0 0 26px;display:grid}.form-section legend{margin-bottom:18px;font-size:18px;font-weight:750}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--line);width:100%;min-height:46px;color:var(--foreground);background:var(--card);border-radius:11px;padding:11px 13px}.form-group textarea{resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}.choice-row,.genre-options{flex-wrap:wrap;gap:12px 22px;display:flex}.choice-row label,.genre-options label{align-items:center;gap:8px;font-size:14px;display:inline-flex}.choice-row input,.genre-options input{width:auto}.form-help{color:var(--muted);font-size:12px;line-height:1.5}.upload-message{color:var(--danger);background:var(--danger-soft);overflow-wrap:anywhere;border-radius:11px;padding:13px 15px;font-size:13px}.submit-music-button{justify-self:start;min-width:130px;padding:0 20px}.admin-song-table{border:1px solid var(--line);background:var(--surface);border-radius:18px;overflow:hidden}.admin-song-row{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1.5fr) minmax(130px,1fr) 100px 100px 120px 90px;align-items:center;gap:16px;padding:16px 20px;font-size:13px;display:grid}.admin-song-row:first-child{border-top:0}.admin-song-row span{color:var(--muted)}.admin-song-head{background:var(--card);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:750}.genre-admin-grid{grid-template-columns:minmax(320px,440px) minmax(360px,1fr);align-items:start;gap:24px;display:grid}.genre-form{max-width:none}.genre-form h2{font-size:18px}.genre-success{color:var(--success);background:var(--success-soft);border-radius:11px;padding:13px 15px;font-size:13px}.genre-submit-button{cursor:pointer;transition:background-color .15s,transform .15s}.genre-submit-button:not(:disabled):hover{background:var(--accent-hover);transform:translateY(-1px)}.genre-submit-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.genre-table{min-width:0}.genre-row{border-top:1px solid var(--line);grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) 150px;align-items:center;gap:16px;padding:14px 18px;font-size:13px;display:grid}.genre-row:first-child{border-top:0}.genre-row span{color:var(--muted)}.genre-head{background:var(--card);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:750}.genre-row-actions,.genre-edit-actions{gap:10px;display:flex}.genre-edit-button,.genre-cancel-button,.genre-delete-button{cursor:pointer}.genre-edit-button:hover,.genre-cancel-button:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.genre-delete-button{color:var(--danger)}.genre-delete-button:not(:disabled):hover{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.genre-edit-button:focus-visible,.genre-cancel-button:focus-visible,.genre-save-button:focus-visible,.genre-delete-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.genre-delete-button:disabled{cursor:default;opacity:.55}.genre-edit-form{border-top:1px solid var(--line);background:var(--card);gap:14px;padding:18px;display:grid}.genre-row-message{margin:0 18px 14px}.genre-edit-actions{gap:10px;display:flex}.genre-save-button{cursor:pointer;min-height:42px;padding:0 18px}.genre-save-button:not(:disabled):hover{background:var(--accent-hover)}.genre-list-message{color:var(--muted);padding:24px 18px;font-size:13px}.album-admin-grid{grid-template-columns:minmax(360px,480px) minmax(620px,1fr);align-items:start;gap:24px;display:grid}.album-form{max-width:none}.album-form h2{font-size:18px}.album-submit-button{cursor:pointer;transition:background-color .15s,transform .15s}.album-submit-button:not(:disabled):hover{background:var(--accent-hover);transform:translateY(-1px)}.album-submit-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.album-table{min-width:0;overflow-x:hidden}.album-row{border-top:1px solid var(--line);grid-template-columns:minmax(100px,1.2fr) minmax(80px,1fr) minmax(90px,1fr) 48px 78px 58px 64px;align-items:center;gap:10px;min-width:0;padding:14px 16px;font-size:13px;display:grid}.album-row:first-child{border-top:0}.album-row span{color:var(--muted);overflow-wrap:anywhere}.album-head{background:var(--card);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:750}.album-row-actions{gap:6px;display:grid}.album-action-button{width:100%;padding:8px 10px}.album-row-message{margin:0 16px 14px}.album-edit-form{border-top:1px solid var(--line);background:var(--card);gap:14px;padding:18px;display:grid}.album-cover-preview{aspect-ratio:1;border:1px solid var(--line);background:center / cover linear-gradient(145deg, var(--accent-soft), var(--card));border-radius:14px;width:120px}.file-edit-panel{align-content:start;gap:16px;min-width:0;display:grid}.edit-cover-preview{aspect-ratio:1;border:1px solid var(--line);background:linear-gradient(145deg, var(--accent-soft), var(--card));border-radius:18px;width:180px}.edit-cover-preview-image{background-position:50%;background-size:cover}.edit-audio-status{border:1px solid var(--line);min-height:180px;color:var(--muted);background:var(--card);text-align:center;border-radius:18px;align-content:center;place-items:center;gap:12px;padding:24px;display:grid}.edit-audio-status span{color:var(--accent);font-size:34px}.edit-audio-status p{font-size:13px}.login-panel{border:1px solid var(--line);background:var(--surface);border-radius:24px;width:min(460px,100%);margin:5vh auto 0;padding:34px}.login-panel h1{letter-spacing:-.04em;font-size:34px}.login-copy{color:var(--muted);margin:10px 0 28px;font-size:14px}.login-form{gap:20px;display:grid}.login-form input{border:1px solid var(--line);width:100%;min-height:48px;color:var(--foreground);background:var(--card);border-radius:12px;padding:0 13px}.login-form input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.login-error{color:var(--danger);font-size:13px}.auth-success{color:var(--success);background:var(--success-soft);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.5}.auth-switch{color:var(--muted);text-align:center;margin-top:22px;font-size:13px}.auth-switch a{color:var(--accent);font-weight:700}.login-button{min-height:48px;color:var(--text-on-accent);background:var(--accent);border:0;border-radius:999px;font-weight:700}.login-button:disabled{cursor:wait;opacity:.6}:where(.header-auth-link,.logout-button,.secondary-link):where(:not(:disabled)):hover{color:var(--accent-hover);border-color:var(--accent);background:var(--accent-soft)}.login-button:not(:disabled):hover,.list-play-button:not(:disabled):hover,.play-placeholder:not(:disabled):hover{background:var(--accent-hover)}.auth-switch a:hover{color:var(--accent-hover)}.nav-link[aria-current=page]{color:var(--accent-hover);background:var(--accent-soft)}.music-card>a:hover strong,.song-row-link:hover strong,.album-track-row a:hover strong,.admin-song-row a:hover strong{color:var(--accent-hover)}.form-group :is(input,select,textarea):disabled{color:var(--muted);background:var(--surface)}:where(.form-group input,.login-form input):autofill{color:var(--foreground);background-color:var(--card)}:where(.form-group input,.login-form input):-webkit-autofill{-webkit-text-fill-color:var(--foreground);box-shadow:0 0 0 1000px var(--card) inset}.play-placeholder:not(:disabled){opacity:1;cursor:pointer}.play-placeholder:disabled{cursor:wait;opacity:.55}@media (min-width:901px){.desktop-nav .nav-link{border-radius:10px;min-height:46px}.desktop-nav .nav-link:hover{background:var(--card)}.desktop-nav .nav-link[aria-current=page]{color:var(--accent);background:var(--accent-soft)}}@media (max-width:900px){.desktop-nav{display:none}.discover-grid{grid-template-columns:1fr}.list-placeholder{grid-column:auto}.song-row-link{grid-template-columns:64px minmax(0,1fr)}.song-row-cover{width:64px;height:64px}}@media (max-width:620px){.page-stack{gap:42px}.section-heading,.page-heading{flex-direction:column;align-items:start}.section-heading p{font-size:13px}.song-detail{grid-template-columns:1fr;gap:30px}.song-detail-media,.song-detail>.detail-copy{display:contents}.song-cover{order:1;width:min(100%,380px)}.song-detail-summary{order:2;min-width:0}.song-detail .lyrics-info{order:3;margin-top:10px}.song-detail .ai-info{order:4;margin-top:10px}.detail-copy h1{font-size:44px}.admin-header{flex-direction:column;align-items:flex-start}.admin-form{padding:20px}.login-panel{margin-top:0;padding:26px 20px}}@media (max-width:760px){.field-grid,.genre-admin-grid,.album-admin-grid{grid-template-columns:1fr}.admin-song-table{overflow-x:auto}.admin-song-row{min-width:720px}.album-table{overflow-x:auto}.album-row{min-width:620px}}.app-main:has(>.content-container>.home-music){--home-content-inset:32px;padding-top:calc(var(--header-height) + var(--home-content-inset));padding-left:var(--home-content-inset);padding-right:var(--home-content-inset)}.home-music{gap:48px;min-width:0;display:grid}.music-section{min-width:0}.latest-panel{border:1px solid var(--border);background:var(--surface);border-radius:28px;padding:24px}.music-section-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.music-section-heading h1,.music-section-heading h2{color:var(--text-primary);letter-spacing:-.045em;font-size:clamp(28px,3vw,40px);font-weight:750;line-height:1.15}.music-section-heading p{color:var(--text-secondary);margin-top:10px;font-size:14px;line-height:1.6}.music-browse-link{border:1px solid var(--border);min-height:40px;color:var(--text-secondary);border-radius:9999px;flex-shrink:0;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:700;transition:color .2s,background-color .2s,border-color .2s;display:inline-flex}.music-browse-link:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.release-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.release-toolbar p{color:var(--text-secondary);font-size:12px}.release-toolbar p span{color:var(--text-primary);margin-left:6px;font-weight:700}.release-controls{gap:8px;display:flex}.release-controls button{border:1px solid var(--border);width:44px;height:44px;color:var(--text-primary);background:var(--card);border-radius:9999px;place-items:center;transition:background-color .2s,border-color .2s,color .2s;display:grid}.release-controls button:not(:disabled):hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.release-controls button:disabled{opacity:.4;color:var(--text-secondary)}.release-carousel{overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--border) transparent;grid-auto-columns:calc(33.3333% - 16px);grid-auto-flow:column;gap:24px;margin:0 -4px;padding:8px 4px 20px;display:grid;overflow-x:auto}.release-carousel::-webkit-scrollbar{height:4px}.release-carousel::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}.release-card{border:1px solid var(--border);background:var(--card);scroll-snap-align:start;border-radius:24px;flex-direction:column;padding:16px;scroll-margin-inline:4px;transition:background-color .25s,border-color .25s,box-shadow .25s;display:flex}.release-card:hover,.release-card:focus-within{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 8px 16px var(--shadow)}.release-link{border-radius:18px;min-width:0;display:block}.release-link:after,.ranked-track-link:after{content:"";border-radius:24px;position:absolute;inset:0}.release-card .cover-placeholder{aspect-ratio:1;object-fit:cover;border-radius:18px;width:100%;height:auto;margin:0 0 18px;display:block}.release-kind{color:var(--text-secondary);letter-spacing:.1em;text-transform:uppercase;overflow-wrap:anywhere;margin-bottom:8px;font-size:10px;font-weight:700}.release-title{color:var(--text-primary);letter-spacing:-.025em;overflow-wrap:anywhere;word-break:keep-all;font-size:18px;font-weight:700;line-height:1.4}.release-link:hover .release-title{color:var(--accent-hover)}.release-footer{justify-content:space-between;align-items:center;gap:12px;min-height:58px;margin-top:auto;padding-top:14px;display:flex}.album-card .release-link{flex-direction:column;flex:1;display:flex}.release-artist{min-width:0;color:var(--text-secondary);overflow-wrap:anywhere;font-size:13px;line-height:1.5}.music-play-button{z-index:1;width:44px;height:44px;color:var(--text-on-accent);background:var(--accent);border:0;border-radius:9999px;flex:none;place-items:center;font-size:15px;transition:background-color .2s,box-shadow .2s;display:grid;position:relative}.music-play-button:not(:disabled):hover{background:var(--accent-hover);box-shadow:0 4px 12px var(--shadow)}.music-play-button:disabled{cursor:wait;opacity:.55}.popular-tracks{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;list-style:none;display:grid}.ranked-track{border:1px solid var(--border);background:var(--card);border-radius:24px;grid-template-columns:24px minmax(0,1fr) 44px;align-items:center;gap:16px;min-width:0;padding:20px;transition:background-color .25s,border-color .25s,box-shadow .25s;display:grid;position:relative}.ranked-track:hover,.ranked-track:focus-within{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 8px 16px var(--shadow)}.track-rank{color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:center;font-size:13px;font-weight:700}.ranked-track-link{border-radius:18px;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:16px;min-width:0;display:grid}.ranked-track .ranked-track-cover{aspect-ratio:1;object-fit:cover;border-radius:18px;width:76px;height:76px;margin:0}.ranked-track-copy{min-width:0}.ranked-track-copy h3{color:var(--text-primary);letter-spacing:-.025em;word-break:keep-all;overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:1.5}.ranked-track-link:hover h3{color:var(--accent-hover)}.ranked-track-copy p{color:var(--text-secondary);overflow-wrap:anywhere;margin-top:6px;font-size:13px;line-height:1.5}@media (min-width:901px){.app-main:has(>.content-container>:is(.home-music,article.song-detail)){padding-inline:clamp(24px,2vw,40px)}.app-main:has(>.content-container>.home-music){--home-content-inset:clamp(24px, 2vw, 40px);padding-top:calc(var(--header-height) + var(--home-content-inset))}.content-container:has(>:is(.home-music,article.song-detail)){width:100%;margin-inline:0}.content-container>article.song-detail{grid-template-columns:clamp(260px,28%,420px) minmax(0,1fr)}.home-music .release-carousel{grid-auto-columns:clamp(224px,25% - 15px,240px);gap:20px}.home-music .release-title,.home-music .release-artist,.home-music .ranked-track-copy h3,.home-music .ranked-track-copy p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-music .popular-tracks{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}}@media (min-width:1101px){.content-container>article.song-detail .ai-facts{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}}@media (max-width:1100px) and (min-width:901px){.release-carousel{grid-auto-columns:calc(50% - 12px)}.popular-tracks{grid-template-columns:1fr}}@media (max-width:900px){.app-main:has(>.content-container>.home-music){--home-content-inset:24px;padding-top:calc(var(--header-height) + env(safe-area-inset-top) + var(--home-content-inset));padding-left:var(--home-content-inset);padding-right:var(--home-content-inset)}.release-carousel{grid-auto-columns:calc(50% - 12px)}}@media (max-width:760px){.popular-tracks{grid-template-columns:1fr;gap:16px}}@media (max-width:620px){.app-main:has(>.content-container>.home-music){--home-content-inset:18px}.home-music{gap:40px}.latest-panel{padding:18px}.music-section-heading{align-items:flex-start;gap:12px}.music-section-heading h1,.music-section-heading h2{font-size:28px}.music-section-heading p{font-size:13px}.music-browse-link{min-height:36px;padding:0 12px;font-size:12px}.release-carousel{grid-auto-columns:calc(50% - 10px);gap:20px}.release-card{padding:12px}.release-title{font-size:16px}.ranked-track{gap:12px;padding:16px}.ranked-track-link{grid-template-columns:64px minmax(0,1fr);gap:12px}.ranked-track .ranked-track-cover{width:64px;height:64px}}@media (max-width:480px){.music-section-heading{flex-wrap:wrap}.release-carousel{grid-auto-columns:100%}.ranked-track{grid-template-columns:20px minmax(0,1fr) 40px}.ranked-track-link{grid-template-columns:56px minmax(0,1fr)}.ranked-track .ranked-track-cover{width:56px;height:56px}.ranked-track .music-play-button{width:40px;height:40px}}@media (prefers-reduced-motion:reduce){.release-carousel{scroll-behavior:auto}.release-card,.ranked-track,.music-play-button,.release-controls button,.music-browse-link{transition:none}}.app-shell{--player-reserved-space:130px}.app-main{padding-bottom:calc(var(--player-reserved-space) + 32px + env(safe-area-inset-bottom))}.desktop-nav{bottom:calc(var(--player-reserved-space) + env(safe-area-inset-bottom))}.player{z-index:40;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));border:1px solid var(--border);height:114px;color:var(--text-primary);background:var(--card);box-shadow:0 12px 36px var(--shadow);border-radius:24px;grid-template-columns:minmax(180px,1fr) minmax(300px,1.3fr) minmax(184px,1fr);align-items:center;gap:20px;padding:16px 20px;display:grid;position:fixed}.now-playing{align-items:center;gap:14px;min-width:0;display:flex}.player-cover{aspect-ratio:1;border:1px solid var(--border);background:center / cover linear-gradient(145deg, var(--accent-soft), var(--accent));border-radius:16px;flex:none;width:64px}.track-copy{min-width:0}.track-copy strong,.track-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.track-copy strong{letter-spacing:-.025em;font-size:15px;line-height:1.5}.track-copy span{color:var(--text-secondary);margin-top:5px;font-size:12px;line-height:1.5}.track-copy span[role=status]{color:var(--danger)}.player-center{gap:8px;min-width:0;display:grid}.player-controls{justify-content:center;align-items:center;gap:16px;display:flex}.player .icon-button{width:40px;height:40px;color:var(--text-secondary);background:0 0;border:0;border-radius:14px;flex:none;justify-content:center;align-items:center;padding:0;transition:color .2s,background-color .2s,box-shadow .2s;display:inline-flex}.player .icon-button:not(:disabled):hover{color:var(--text-primary);background:var(--surface)}.player .icon-button:disabled{opacity:.35;cursor:default}.player .play-button{width:48px;height:48px;color:var(--text-on-accent);background:var(--accent);box-shadow:0 4px 14px var(--shadow);border-radius:9999px}.player .play-button:not(:disabled):hover{color:var(--text-on-accent);background:var(--accent-hover)}.player .queue-button.is-active,.player .mute-button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.progress-wrap{min-width:0;height:24px;color:var(--text-secondary);align-items:center;gap:10px;display:flex}.progress-wrap>span{font-variant-numeric:tabular-nums;text-align:center;min-width:34px;font-size:11px;line-height:1}.player-range{appearance:none;width:100%;min-width:0;height:24px;accent-color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:8px;margin:0;padding:0;display:block}.player-range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) 0 var(--range-progress), var(--border) var(--range-progress) 100%);border-radius:9999px;height:4px}.player-range::-webkit-slider-thumb{appearance:none;border:2px solid var(--card);background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 1px var(--accent);border-radius:9999px;margin-top:-4px}.player-range::-moz-range-track{background:var(--border);border-radius:9999px;height:4px}.player-range::-moz-range-progress{background:var(--accent);border-radius:9999px;height:4px}.player-range::-moz-range-thumb{border:2px solid var(--card);background:var(--accent);border-radius:9999px;width:10px;height:10px}.player-range:disabled{opacity:.4;cursor:default}.player-tools,.volume-wrap{align-items:center;gap:10px;min-width:0;display:flex}.player-tools{justify-content:flex-end}.volume-wrap{gap:8px}.device-volume-note{color:var(--text-secondary);text-align:center;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.5}.volume-range{width:88px}.queue-panel{z-index:45;top:calc(var(--header-height) + 16px);right:16px;bottom:calc(var(--player-reserved-space) + 16px + env(safe-area-inset-bottom));width:min(400px,100vw - 32px);max-height:calc(100dvh - var(--header-height) - var(--player-reserved-space) - 32px - env(safe-area-inset-bottom));border:1px solid var(--border);color:var(--text-primary);background:var(--card);box-shadow:0 16px 48px var(--shadow);border-radius:24px;grid-template-rows:auto minmax(0,1fr);display:grid;position:fixed;overflow:hidden}.queue-panel-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}.queue-panel-heading h2{letter-spacing:-.04em;font-size:24px;line-height:1.2}.queue-panel-heading p{color:var(--text-secondary);margin-top:8px;font-size:12px}.queue-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;min-height:0;padding:12px;list-style:none;overflow-y:auto}.queue-item{width:100%;min-width:0;color:var(--text-primary);text-align:left;background:0 0;border:1px solid #0000;border-radius:16px;grid-template-columns:20px 52px minmax(0,1fr) 16px;align-items:center;gap:12px;padding:12px;transition:background-color .2s,border-color .2s;display:grid}.queue-list li+li{margin-top:6px}.queue-item:hover{background:var(--surface)}.queue-item.is-current{border-color:var(--accent);background:var(--accent-soft)}.queue-number{color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:center;font-size:11px}.queue-item.is-current .queue-number{color:var(--accent)}.queue-cover{aspect-ratio:1;background:center / cover linear-gradient(145deg, var(--accent-soft), var(--card));border-radius:14px;width:52px;display:block}.queue-copy{min-width:0}.queue-copy strong,.queue-copy span{display:block}.queue-copy strong{overflow-wrap:anywhere;word-break:keep-all;font-size:14px;line-height:1.5}.queue-copy span{color:var(--text-secondary);overflow-wrap:anywhere;margin-top:5px;font-size:12px;line-height:1.5}.queue-current-mark{color:var(--accent);text-align:center;font-size:14px}@media (prefers-reduced-motion:reduce){.player .icon-button,.queue-item{transition:none}}.mobile-tabs{display:none}.song-row-link>div,.detail-copy{overflow-wrap:anywhere;min-width:0}@media (max-width:900px){:root{--header-height:60px}.app-shell{--mobile-dock-inset:12px;--mobile-tab-height:64px;--mobile-mini-height:68px;--mobile-dock-gap:10px;--mobile-content-gap:28px;--mobile-dock-height:var(--mobile-tab-height)}.app-shell:has(.mobile-mini-player){--mobile-dock-height:calc(var(--mobile-tab-height) + var(--mobile-dock-gap) + var(--mobile-mini-height))}.site-header{z-index:30;height:calc(var(--header-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;gap:8px}.brand-logo{width:clamp(112px,31vw,160px)}.brand,.music-browse-link{min-height:44px}.auth-switch a{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.header-account,.header-auth-actions{gap:6px}.header-account-label{max-width:min(110px,25vw);font-size:12px}.header-auth-link,.logout-button{min-width:44px;min-height:44px;padding:0 12px}.logout-error{border:1px solid var(--border);background:var(--surface);border-radius:12px;max-width:calc(100vw - 32px);padding:10px 14px;position:absolute;top:100%;right:16px}.app-main{padding-top:calc(var(--header-height) + env(safe-area-inset-top) + 24px);padding-left:18px;padding-right:18px;padding-bottom:calc(var(--mobile-dock-height) + var(--mobile-dock-inset) + env(safe-area-inset-bottom) + var(--mobile-content-gap));scroll-padding-bottom:calc(var(--mobile-dock-height) + var(--mobile-content-gap));margin-left:0}.desktop-player{display:none}.mobile-tabs{z-index:60;left:var(--mobile-dock-inset);right:var(--mobile-dock-inset);bottom:calc(var(--mobile-dock-inset) + env(safe-area-inset-bottom));height:var(--mobile-tab-height);border:1px solid var(--border);background:var(--card);box-shadow:0 8px 24px var(--shadow);border-radius:24px;padding:4px 6px;display:flex;position:fixed}.mobile-tabs .nav-group{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;width:100%;display:grid}.mobile-tabs .nav-link{white-space:nowrap;border-radius:17px;flex-direction:column;justify-content:center;gap:4px;min-width:44px;min-height:44px;padding:4px;font-size:11px;line-height:1.25;transition:color .2s,background-color .2s}.mobile-tabs .nav-link[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.mobile-tabs .nav-link:hover{color:var(--text-primary);background:var(--surface)}.mobile-tabs .nav-link:focus-visible{outline-offset:-2px}.mobile-tabs .nav-icon{height:22px}.mobile-mini-player{z-index:61;left:var(--mobile-dock-inset);right:var(--mobile-dock-inset);bottom:calc(var(--mobile-dock-inset) + env(safe-area-inset-bottom) + var(--mobile-tab-height) + var(--mobile-dock-gap));height:var(--mobile-mini-height);border:1px solid var(--border);background:var(--card);box-shadow:0 8px 24px var(--shadow);border-radius:22px;align-items:center;gap:4px;padding:10px;display:flex;position:fixed}.mobile-mini-open{min-width:0;min-height:44px;color:var(--text-primary);text-align:left;background:0 0;border:0;border-radius:12px;flex:1;align-items:center;gap:10px;padding:0;display:flex}.mini-cover{aspect-ratio:1;background:center / cover linear-gradient(145deg, var(--accent-soft), var(--accent));border-radius:12px;flex:none;width:44px;display:block}.mini-copy{gap:4px;min-width:0;display:grid}.mini-copy strong,.mini-copy>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mini-copy strong{font-size:13px;line-height:1.5}.mini-copy>span{color:var(--text-secondary);font-size:11px;line-height:1.4}.mini-copy>span[role=status]{color:var(--danger)}.mobile-icon-button{width:44px;height:44px;color:var(--text-primary);background:0 0;border:0;border-radius:14px;flex:none;justify-content:center;align-items:center;padding:0;transition:color .2s,background-color .2s;display:inline-flex}.mobile-icon-button:not(:disabled):hover{color:var(--accent);background:var(--accent-soft)}.mobile-icon-button:disabled{opacity:.35}.mini-progress{background:var(--border);border-radius:999px;height:2px;position:absolute;bottom:0;left:16px;right:16px;overflow:hidden}.mini-progress>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.mobile-expanded-player,.mobile-queue-dialog{border:1px solid var(--border);color:var(--text-primary);background:var(--surface);overscroll-behavior:contain;border-radius:28px;margin:auto;position:fixed}.mobile-expanded-player{inset:calc(8px + env(safe-area-inset-top)) 8px calc(8px + env(safe-area-inset-bottom));width:min(600px,100% - 16px);max-width:none;height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 0, var(--accent-soft), transparent 50%), var(--surface);max-height:none;padding:20px 24px;overflow-y:auto}.mobile-expanded-player::backdrop,.mobile-queue-dialog::backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b8}.expanded-player-inner{flex-direction:column;gap:clamp(12px,2.5dvh,24px);min-height:100%;display:flex}.expanded-topline{z-index:1;background:var(--surface);border-radius:16px;flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.expanded-topline h2{color:var(--text-secondary);letter-spacing:.08em;font-size:12px;font-weight:700}.expanded-topline-spacer{width:44px}.expanded-cover{aspect-ratio:1;border:1px solid var(--border);background:center / cover linear-gradient(145deg, var(--accent-soft), var(--accent));width:min(100%,40dvh,360px);box-shadow:0 20px 48px var(--shadow);border-radius:26px;flex:none;align-self:center;margin-top:auto}.expanded-track-copy{min-width:0;margin-top:4px}.expanded-track-copy h3{letter-spacing:-.035em;overflow-wrap:anywhere;font-size:clamp(22px,5vw,30px);line-height:1.3}.expanded-track-copy p{color:var(--text-secondary);overflow-wrap:anywhere;margin-top:8px;font-size:14px;line-height:1.5}.expanded-track-copy p[role=status]{color:var(--danger)}.expanded-progress .player-range{height:44px}.expanded-times{color:var(--text-secondary);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:12px;display:flex}.expanded-controls{justify-content:center;align-items:center;gap:clamp(24px,6vw,40px);display:flex}.expanded-controls .mobile-icon-button{width:52px;height:52px}.expanded-controls .mobile-icon-button svg{width:28px;height:28px}.expanded-controls .expanded-play-button{width:76px;height:76px;color:var(--text-on-accent);background:var(--accent);border-radius:999px}.expanded-controls .expanded-play-button:not(:disabled):hover{color:var(--text-on-accent);background:var(--accent-hover)}.expanded-volume{align-items:center;gap:14px;display:flex}.expanded-volume .player-range{height:44px}.expanded-mute-button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.expanded-queue-button{border:1px solid var(--border);width:100%;min-height:48px;color:var(--text-secondary);background:var(--card);border-radius:18px;justify-content:center;align-items:center;gap:10px;margin-bottom:auto;padding:0 16px;font-size:13px;font-weight:700;display:flex}.expanded-queue-button:hover{color:var(--accent);border-color:var(--accent)}.expanded-queue-count{color:var(--accent);font-size:12px}.mobile-queue-dialog{inset:auto var(--mobile-dock-inset) calc(var(--mobile-dock-inset) + env(safe-area-inset-bottom));width:min(400px, calc(100% - var(--mobile-dock-inset) * 2));max-width:none;height:min(68dvh,560px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:0;overflow:hidden}.mobile-queue-dialog[open]{grid-template-rows:auto minmax(0,1fr);display:grid}.mobile-queue-dialog .queue-panel-heading{padding:20px}.mobile-queue-dialog .queue-panel-heading h2{font-size:24px}.mobile-queue-dialog .queue-list{padding:10px}.mobile-queue-dialog .queue-item{grid-template-columns:18px 44px minmax(0,1fr) 16px;gap:10px;min-height:68px;padding:10px}.mobile-queue-dialog .queue-cover{width:44px}.app-shell:has(.login-form input:focus){--mobile-dock-height:0px}:is(.app-shell:has(.login-form input:focus) .mobile-tabs,.app-shell:has(.login-form input:focus) .mobile-mini-player){visibility:hidden;pointer-events:none}.login-form input{scroll-margin-block:calc(var(--header-height) + env(safe-area-inset-top) + 24px) 24px;font-size:16px}.login-button{scroll-margin-block:24px}.song-row,.album-track-row{grid-template-columns:minmax(0,1fr) 44px}.album-track-row{grid-template-columns:28px minmax(0,1fr) 44px}.album-track-row a{flex-direction:column;justify-content:center;min-height:44px;display:flex}.list-play-button,.ranked-track .music-play-button{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){.mobile-tabs .nav-link,.mobile-icon-button,.like-button{transition:none}}
