.tae-music-library{--tml-text:#f3efe5;--tml-muted:#a5b3c4;--tml-gold:#e8bc67;width:100%;max-width:880px;margin:auto;padding:4px 0 26px;text-align:left;color:var(--tml-text);font:400 13px/1.55 system-ui,sans-serif;letter-spacing:0;box-sizing:border-box}
.tae-music-library *{box-sizing:border-box}.tae-music-library button,.tae-music-library input{font:inherit;letter-spacing:0;touch-action:manipulation}.tae-music-library button{cursor:pointer}.tae-music-library button:focus-visible,.tml-search:focus-within{outline:2px solid var(--tml-gold);outline-offset:3px}
.tml-toolbar{position:sticky;top:0;z-index:12;padding:8px 0 12px;background:linear-gradient(#0b1424fa,#0b1424f5);backdrop-filter:blur(16px);border-bottom:1px solid #8292ad30}.tml-tools{display:flex;align-items:center;gap:12px}.tml-modes{display:flex;gap:4px;flex-shrink:0}.tml-modes button{min-height:44px;border:0;border-radius:24px;padding:8px 15px;background:transparent;color:var(--tml-muted);white-space:nowrap}.tml-modes button[aria-pressed=true]{color:#171720;background:#eed29a;box-shadow:0 3px 18px #e8bc6722}.tml-search{display:flex;align-items:center;gap:8px;min-width:0;flex:1;border:1px solid #8292ad35;background:#ffffff03;border-radius:24px;padding:0 12px}.tml-search>span{font-size:23px;color:var(--tml-muted)}.tml-search input{width:100%;min-width:0;min-height:44px;border:0;outline:0;background:transparent;color:var(--tml-text);user-select:text}.tml-search input::placeholder{color:var(--tml-muted);font-size:11px}
.tml-seasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:6px;margin-top:10px}.tml-seasons button{display:flex;justify-content:center;align-items:center;gap:9px;min-height:48px;min-width:0;padding:8px 6px;border:1px solid #8292ad28;border-radius:14px;background:#ffffff04;color:#c2ccda;position:relative;transition:background .18s,border-color .18s,transform .18s}.tml-seasons button span{font-size:11px;font-weight:600}.tml-seasons button small{font-size:9px;opacity:.5;font-variant-numeric:tabular-nums}.tml-seasons button[aria-pressed=true]{color:#ffe3a6;border-color:#e8bc6780;background:#e8bc6717}.tml-seasons button[aria-pressed=true]:after{content:'';position:absolute;width:14px;height:2px;bottom:5px;border-radius:2px;background:var(--tml-gold)}.tml-seasons button:active,.tml-modes button:active{transform:scale(.94)}
.tml-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:25px}.tml-heading small{color:var(--tml-gold);font-size:9px;letter-spacing:.18em}.tml-heading h2{margin:6px 0 0;font:400 clamp(23px,5vw,33px)/1.35 Georgia,'Noto Serif KR',serif;letter-spacing:.01em}.tml-heading nav{display:flex;gap:6px}.tml-heading nav[hidden]{display:none}.tml-heading nav button{width:44px;height:44px;padding:0;border-radius:50%;border:1px solid #8090aa55;background:#ffffff08;color:var(--tml-text);font-size:24px}.tml-heading nav button:disabled{opacity:.22;cursor:default}.tml-about{font-size:12px;line-height:1.7;color:var(--tml-muted);margin:10px 0 22px;word-break:keep-all}.tml-about:empty,.tml-status:empty{display:none}.tml-status{color:#e8c786;line-height:1.6;border:1px solid #e8b44a44;border-radius:10px;padding:10px;margin:8px 0}
.tml-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;align-items:stretch}.tml-card{min-width:0;border:1px solid #8292ad30;border-radius:22px;background:linear-gradient(150deg,#1b293ae0,#0b1424);overflow:hidden;box-shadow:0 9px 22px #0002;animation:tml-arrive .4s cubic-bezier(.22,.7,.25,1) backwards;animation-delay:var(--tml-delay);transition:transform .2s,border-color .2s,box-shadow .2s}.tml-pick{display:flex;flex-direction:column;align-items:stretch;width:100%;height:100%;padding:0;border:0;background:none;color:inherit;text-align:left}.tml-art{position:relative;overflow:hidden;flex-shrink:0}.tml-art img{display:block;width:100%;aspect-ratio:1.42;object-fit:cover;transition:transform .45s}.tml-number{display:none;position:absolute;left:14px;top:13px;color:#fff4da;font:400 13px/1 system-ui;font-variant-numeric:tabular-nums;border:1px solid #ffffff45;border-radius:50%;width:30px;height:30px;align-items:center;justify-content:center;background:#0b14246b;backdrop-filter:blur(6px)}.tml-card-body{display:flex;flex-direction:column;flex:1;min-width:0;padding:14px 16px}.tml-card-body>small{font-size:9px;color:#d0b878;letter-spacing:.12em}.tml-card-body h3{margin:6px 0 8px;font:500 17px/1.35 system-ui;word-break:keep-all}.tml-meta{font-size:9px;line-height:1.6;color:#a9b8c9}.tml-card-body p{font-size:11px;line-height:1.75;color:#b8c4d2;margin:10px 0 16px;word-break:keep-all}.tml-action{display:block;margin-top:auto;padding-top:10px;border-top:1px solid #a0adc425;color:#f0dbad;font-size:11px;font-weight:500}.tml-pick:focus-visible{outline-offset:-4px!important}.tml-empty{grid-column:1/-1;text-align:center;padding:30px 10px;color:var(--tml-muted)}.tml-card:has(.tml-pick:disabled){opacity:.6}.tml-card:has(.tml-pick:active){transform:scale(.978)}
/* A lead track, a pair, then a quieter horizontal track create a four-beat phrase. */
[data-view=recommended] .tml-number{display:flex}[data-view=recommended] .tml-card:nth-child(4n+1),[data-view=recommended] .tml-card:nth-child(4n){grid-column:1/-1}[data-view=recommended] .tml-card:nth-child(4n+1){border-color:#e8bc6750;border-radius:28px 28px 28px 8px}[data-view=recommended] .tml-card:nth-child(4n+1) .tml-pick{flex-direction:row}[data-view=recommended] .tml-card:nth-child(4n+1) .tml-art{width:48%}[data-view=recommended] .tml-card:nth-child(4n+1) .tml-art img{height:100%;aspect-ratio:1;object-fit:cover}[data-view=recommended] .tml-card:nth-child(4n+1) .tml-card-body{padding:22px}[data-view=recommended] .tml-card:nth-child(4n+1) h3{font:400 clamp(25px,4vw,35px)/1.12 Georgia,serif;margin:12px 0}[data-view=recommended] .tml-card:nth-child(4n+2){border-radius:8px 24px 24px 24px}[data-view=recommended] .tml-card:nth-child(4n+3){border-radius:24px 8px 24px 24px}[data-view=recommended] .tml-card:nth-child(4n) .tml-pick{flex-direction:row}[data-view=recommended] .tml-card:nth-child(4n) .tml-art{width:32%}[data-view=recommended] .tml-card:nth-child(4n) .tml-art img{height:100%;aspect-ratio:1;object-fit:cover}
@keyframes tml-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.tml-card:hover{transform:translateY(-4px);border-color:#dfc58f88;box-shadow:0 15px 28px #0004}.tml-card:hover img{transform:scale(1.025)}.tml-seasons button:hover{background:#e8bc6714}}
@media(min-width:740px){[data-view=catalog] .tml-grid,[data-view=search] .tml-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:540px){.tml-tools{gap:7px}.tml-modes button{padding:8px 11px;font-size:11px}.tml-search{gap:4px;padding:0 9px}.tml-seasons{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.tml-seasons button{flex-direction:column;gap:2px;padding:5px 2px;min-height:49px;border-radius:12px}.tml-seasons button span{font-size:10px}.tml-seasons button:first-child span{font-size:8px}.tml-seasons button small{font-size:8px}.tml-seasons button[aria-pressed=true]:after{bottom:3px;width:10px}.tml-heading{margin-top:20px}.tml-about{margin-bottom:16px}.tml-grid{gap:12px}.tml-card-body{padding:13px}.tml-card-body h3{font-size:16px}[data-view=recommended] .tml-card:nth-child(4n+1) .tml-art{width:43%}[data-view=recommended] .tml-card:nth-child(4n+1) .tml-card-body{padding:16px 14px}[data-view=recommended] .tml-card:nth-child(4n+1) h3{font-size:27px;margin:9px 0}[data-view=recommended] .tml-card:nth-child(4n+1) p{font-size:11px}.tml-number{left:10px;top:10px;width:26px;height:26px;font-size:11px}}
@media(max-width:340px){.tml-seasons{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.tae-music-library *{animation:none!important;transition:none!important}.tml-card:has(.tml-pick:active),.tml-seasons button:active,.tml-modes button:active{transform:none}}
/* Keep the existing game and preparation DOM alive while the common library owns selection. */
#flowPanel.has-music-library>:not(.tae-music-library):not(#flowLaunchStage){display:none!important}#flowPanel.has-music-library{width:min(760px,calc(100vw - 32px))!important;margin:16px auto 80px!important}.flow-setup-open #flowPanel>.tae-music-library{display:none}#flowPanel.has-music-library.launch-stage-open #flowLaunchStage:not([hidden]){display:block!important}
#storyView.has-music-library{display:none;height:calc(100% - 55px);overflow:auto;overscroll-behavior:contain;padding:14px 0 85px;scrollbar-width:thin}#storyView.has-music-library.is-active{display:block;grid-template:none}#storyView.has-music-library>:not(.tae-music-library){display:none!important}
#menu.has-music-library{justify-content:flex-start;overflow-y:auto;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:90px}#menu.has-music-library>:not(.tae-music-library):not(#langRow){display:none!important}#menu.has-music-library .tae-music-library{flex-shrink:0;width:min(880px,100%)}
