*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #080808;--surface: #141414;--surface-2: #1e1e1e;--line: #2a2a2a;--accent: #e11d2e;--accent2: #ff3b4a;--text: #f4f2ee;--text-muted: #8a8a8a;--radius: 0px;--font-display: "Oswald", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", sans-serif}html{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}body{min-height:100dvh;padding:0 12px 80px}.u-display{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;line-height:1.05}header{position:relative;z-index:10;background:transparent;padding:14px 0 10px;text-align:center;border-bottom:3px solid var(--text);margin-bottom:2px}header:after{content:"";display:block;height:1px;background:var(--text);margin-top:3px}header h1{line-height:0}.header-logo{width:min(88%,440px);height:auto}.filters{display:flex;gap:8px;padding:8px 0 16px;overflow-x:auto;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter-btn{flex-shrink:0;padding:7px 14px;border:1px solid var(--line);background:transparent;color:var(--text-muted);font-family:var(--font-display);font-size:.82rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.filter-btn:hover{border-color:var(--text-muted);color:var(--text)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.sort-btn{margin-left:auto;font-size:.78rem;padding:7px 12px}.install-banner{position:relative;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);padding:12px 40px 12px 14px;margin-bottom:12px}.install-text strong{font-family:var(--font-display);font-size:.95rem;text-transform:uppercase;letter-spacing:.08em}.install-text p{font-size:.8rem;color:var(--text-muted);margin-top:4px}.install-text details{margin-top:10px}.install-text summary{font-size:.8rem;color:var(--accent);cursor:pointer;font-weight:600}.install-steps{margin-top:10px;display:flex;flex-direction:column;gap:12px}.install-platform strong{font-size:.78rem;display:block;margin-bottom:4px}.install-platform ol{padding-left:20px;font-size:.75rem;color:var(--text-muted);line-height:1.6}.install-close{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;line-height:1}.install-close:hover{color:var(--text)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}@media (min-width: 600px){.grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}}.card{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);overflow:hidden;transition:border-color .12s}.card:hover{border-color:var(--text-muted)}.card:active{transform:scale(.985)}.card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;border-bottom:1px solid var(--line)}.card-body{flex:1;padding:9px 10px 10px}.card-body .album-name{font-family:var(--font-display);font-size:1rem;font-weight:600;text-transform:uppercase;line-height:1.1;letter-spacing:.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-body .artist-name{font-size:.72rem;font-weight:600;color:var(--text-muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-body .release-date{font-family:var(--font-display);font-size:.72rem;color:var(--text-muted);letter-spacing:.08em;margin-top:4px}.card-body .genres-tag{display:inline-block;font-family:var(--font-display);font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text);background:var(--surface-2);border-left:2px solid var(--accent);padding:2px 6px;margin-top:7px}.card-links{display:flex;gap:1px;padding:0;border-top:1px solid var(--line)}.card-links a{flex:1;text-align:center;padding:8px 0;font-family:var(--font-display);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;transition:opacity .15s}.card-links a:active{opacity:.7}.link-spotify{background:#1db954;color:#000}.link-apple{background:#fc3c44;color:#fff}.status{text-align:center;padding:60px 20px;color:var(--text-muted)}.status .spinner{width:32px;height:32px;border:3px solid #333;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.status.error{color:var(--accent)}.loading-progress{grid-column:1 / -1;padding:0 0 12px}.progress-bar{height:3px;background:#222;border-radius:2px;overflow:hidden}.progress-fill{height:100%;width:0;background:var(--accent);border-radius:2px;transition:width .3s ease}.progress-text{font-size:.72rem;color:var(--text-muted);margin-top:6px;text-align:center}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#1a1a1a 25%,#252525,#1a1a1a 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:4px}.skeleton-card{overflow:hidden}.skeleton-img{width:100%;aspect-ratio:1}.skeleton-text{height:12px;margin-bottom:6px}.skeleton-title{width:85%}.skeleton-artist{width:65%;height:10px}.skeleton-date{width:45%;height:10px}.bottom-nav{display:flex;gap:4px;padding:8px 0 16px;overflow-x:auto;scrollbar-width:none}.bottom-nav::-webkit-scrollbar{display:none}.nav-item{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 8px;border:1px solid var(--line);background:transparent;color:var(--text-muted);font-size:.62rem;cursor:pointer;transition:color .12s,border-color .12s}.nav-item:hover{border-color:var(--text-muted);color:var(--text)}.nav-item.active{border-color:var(--accent);color:var(--text)}.nav-item.active:after{content:"";position:absolute;inset:auto 0 -1px 0;height:3px;background:var(--accent)}.nav-icon{font-size:1.15rem;line-height:1}.nav-label{font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.1em}.news-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}.news-item{display:block;position:relative;background:transparent;padding:13px 14px 13px 12px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text);transition:background .12s}.news-item:before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:transparent;transition:background .12s}.news-item:hover{background:var(--surface)}.news-item:hover:before{background:var(--accent)}.news-item:active{background:var(--surface-2)}.news-meta{display:flex;align-items:center;gap:10px;margin-bottom:5px}.news-source{font-family:var(--font-display);font-size:.64rem;font-weight:600;padding:2px 7px;letter-spacing:.1em;text-transform:uppercase}.news-source.eplus{background:var(--surface-2);color:var(--text-muted);border-left:2px solid var(--accent)}.news-date{font-family:var(--font-display);font-size:.8rem;letter-spacing:.06em;color:var(--text)}.news-title{font-size:.88rem;font-weight:700;line-height:1.4}.news-venue{font-size:.74rem;color:var(--text-muted);margin-top:4px}.event-banner{display:block;background:var(--surface);border-radius:var(--radius);overflow:hidden;margin:20px 0;text-decoration:none;color:var(--text);border:1px solid #333;transition:border-color .15s}.event-banner:hover{border-color:var(--accent)}.event-banner:active{opacity:.9}.event-banner img{width:100%;aspect-ratio:3 / 4;object-fit:cover;object-position:top;max-height:300px}.event-banner-info{padding:12px 16px 14px}.event-banner-tag{display:inline-block;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--accent2);color:#000;padding:2px 8px;border-radius:4px;margin-bottom:6px}.event-banner-title{font-size:1rem;font-weight:800}.event-banner-sub{font-size:.8rem;font-weight:600;color:var(--text-muted);margin-top:2px}.event-banner-details{font-size:.72rem;color:var(--text-muted);margin-top:6px}.user-bar{display:flex;align-items:center;gap:10px;background:var(--surface);border-radius:var(--radius);padding:12px 16px;margin:16px 0}.user-bar img{width:36px;height:36px;border-radius:50%}.user-bar .name{flex:1;font-size:.85rem;font-weight:600}.user-bar button{font-size:.75rem;color:var(--text-muted);background:none;border:none;cursor:pointer}.form-section{background:var(--surface);border-radius:var(--radius);padding:20px;margin:16px 0}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.85rem;font-weight:600;margin-bottom:8px}.form-group .hint{font-size:.72rem;color:var(--text-muted);margin-top:4px}.duration-input{display:flex;align-items:center;gap:12px}.duration-input input[type=range]{flex:1;accent-color:var(--accent)}.duration-input .value{font-size:1.4rem;font-weight:800;color:var(--accent);min-width:70px;text-align:right}.bpm-presets{display:flex;gap:8px;flex-wrap:wrap}.bpm-btn{padding:8px 14px;border:1px solid #333;border-radius:0;background:transparent;color:var(--text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.bpm-btn:hover{border-color:var(--accent);color:var(--text)}.bpm-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.btn-generate{width:100%;padding:16px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;margin-top:20px}.btn-generate:disabled{opacity:.5;cursor:not-allowed}.btn-login{width:100%;padding:16px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;margin-top:24px}.login-screen{text-align:center;padding:60px 20px}.login-screen h2{font-size:1.2rem;margin-bottom:8px}.login-screen p{color:var(--text-muted);font-size:.85rem;margin-bottom:24px;line-height:1.5}.generating{text-align:center;padding:40px 20px}.generating .spinner{width:40px;height:40px;border:3px solid #333;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}.generating p{color:var(--text-muted);font-size:.85rem}.result{background:var(--surface);border-radius:var(--radius);padding:20px;margin:16px 0;text-align:center}.result h2{font-size:1.1rem;margin-bottom:8px}.result .stats{color:var(--text-muted);font-size:.8rem;margin-bottom:16px}.result .btn-open{display:inline-block;padding:12px 32px;background:var(--accent);color:#fff;font-weight:700;font-size:.9rem;border-radius:0;text-decoration:none}.result .btn-again{display:block;margin-top:12px;background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;text-decoration:underline}.track-list{margin-top:16px;text-align:left}.track-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #222}.track-item img{width:40px;height:40px;border-radius:4px}.track-item .track-info{flex:1;overflow:hidden}.track-item .track-name{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-item .track-artist,.track-item .track-duration{font-size:.7rem;color:var(--text-muted)}.privacy{background:var(--surface);border-radius:var(--radius);padding:20px;margin:16px 0;line-height:1.7}.privacy h2{font-size:1.2rem;margin-bottom:4px}.privacy .updated{font-size:.7rem;color:var(--text-muted);margin-bottom:20px}.privacy section{margin-bottom:20px}.privacy h3{font-size:.9rem;margin-bottom:6px}.privacy p,.privacy li{font-size:.8rem;color:var(--text-muted)}.privacy ul,.privacy ol{padding-left:20px}.privacy li{margin-bottom:4px}.privacy a{color:var(--accent);text-decoration:none}.privacy code{background:#222;padding:1px 5px;border-radius:3px;font-size:.75rem}.btn-back{width:100%;padding:12px;border:1px solid #333;border-radius:var(--radius);background:transparent;color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer;margin-top:8px}.btn-back:hover{border-color:var(--accent)}footer{margin-top:40px;padding:24px 0 8px;border-top:3px solid var(--text);color:var(--text-muted);font-size:.78rem}.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:24px 16px;padding-bottom:24px}.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.footer-heading{font-family:var(--font-display);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--accent)}.footer-col a,.footer-link{padding:0;border:none;background:none;color:var(--text-muted);font-family:inherit;font-size:.78rem;text-align:left;text-decoration:none;cursor:pointer}.footer-col a:hover,.footer-link:hover{color:var(--text)}.footer-base{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid var(--line)}.footer-mark{font-family:var(--font-display);font-size:.86rem;font-weight:700;letter-spacing:.18em;color:var(--text)}.footer-base a{color:var(--text-muted);text-decoration:none}.footer-base a:hover{color:var(--text)}.lives-filters{padding:8px 0 12px;display:flex;flex-direction:column;gap:8px}.lives-filter-row{display:flex;align-items:center;gap:8px}.live-type-chips,.region-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1}.live-type-chips::-webkit-scrollbar,.region-chips::-webkit-scrollbar{display:none}.hide-past-toggle{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:.72rem;color:var(--text-muted);cursor:pointer;white-space:nowrap}.hide-past-toggle input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.news-item-wrap{border-bottom:1px solid #222}.news-bands{font-size:.8rem;color:var(--accent, #00d4aa);margin-top:4px}.news-actions{display:flex;align-items:center;justify-content:space-between;padding:6px 16px 10px}.org-link{font-size:.8rem;color:#888;text-decoration:none}.org-link:hover{color:var(--accent, #00d4aa)}.news-source.curated{background:var(--accent);color:#fff}.btn-request-event{display:block;width:100%;padding:10px;margin-bottom:12px;background:transparent;border:1px dashed #444;border-radius:var(--radius);color:var(--text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-request-event:hover{border-color:var(--accent);color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.modal-content{background:var(--surface);border-radius:1rem;padding:1.5rem;width:100%;max-width:420px;position:relative;max-height:90vh;overflow-y:auto}.modal-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;color:#888;font-size:1.5rem;cursor:pointer}.modal-content h3{font-size:1.1rem;margin-bottom:4px}.modal-desc{font-size:.75rem;color:var(--text-muted);margin-bottom:16px;line-height:1.5}.form-field{margin-bottom:12px}.form-field label{display:block;font-size:.75rem;font-weight:600;margin-bottom:4px;color:var(--text-muted)}.form-field input,.form-field select{width:100%;padding:10px 12px;background:#111;border:1px solid #333;border-radius:6px;color:var(--text);font-size:.85rem}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--accent)}.form-field select{-moz-appearance:none;appearance:none;-webkit-appearance:none}.btn-submit-event{width:100%;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:700;cursor:pointer;margin-top:8px}.btn-submit-event:disabled{opacity:.5;cursor:not-allowed}.modal-status{text-align:center;font-size:.8rem;margin-top:8px;min-height:1.2em}.modal-status.success{color:#4ade80}.modal-status.error{color:#f87171}.stream-genre-chips{display:flex;gap:6px;padding:8px 0 10px;overflow-x:auto;scrollbar-width:none}.stream-genre-chips::-webkit-scrollbar{display:none}.stream-live-banner{display:none}.stream-live-banner.active{display:flex;align-items:center;gap:8px;background:var(--accent);color:#fff;font-family:var(--font-display);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;padding:8px 12px;margin-bottom:10px}.live-dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:live-pulse 1.4s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.live-dot{animation:none}}.stream-date-label{font-family:var(--font-display);font-size:.92rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em;padding:14px 0 6px;border-bottom:2px solid var(--line);margin-bottom:4px}.streams-list{display:flex;flex-direction:column;gap:1px}.stream-item{display:block;background:var(--surface);border:1px solid var(--line);padding:13px 14px;color:var(--text)}.stream-item.is-live{border-color:var(--accent);border-left-width:3px}.stream-meta{display:flex;align-items:center;gap:10px;margin-bottom:6px}.stream-festival{font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.stream-live-badge{display:inline-flex;align-items:center;gap:5px;margin-left:auto;background:var(--accent);color:#fff;font-family:var(--font-display);font-size:.66rem;font-weight:600;letter-spacing:.14em;padding:2px 8px}.stream-artist{font-family:var(--font-display);font-size:1.25rem;font-weight:600;text-transform:uppercase;line-height:1.1}.stream-time{font-family:var(--font-display);font-size:.86rem;letter-spacing:.06em;color:var(--text);margin-top:4px}.stream-location{font-size:.74rem;color:var(--text-muted);margin-top:2px}.stream-genre-tag{display:inline-block;font-family:var(--font-display);font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text);background:var(--surface-2);border-left:2px solid var(--accent);padding:2px 6px;margin-top:8px}.stream-actions{display:flex;gap:1px;margin-top:10px}.stream-watch,.stream-cal{flex:1;text-align:center;padding:9px 0;font-family:var(--font-display);font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;text-decoration:none}.stream-watch{background:var(--accent);color:#fff}.stream-cal{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}.stream-watch:active,.stream-cal:active{opacity:.75}.set-details{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.set-toggle{font-family:var(--font-display);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);cursor:pointer}.set-toggle:hover{color:var(--text)}.set-times{margin-top:8px}.stage-name{font-family:var(--font-display);font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:8px 0 4px}.set-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:.8rem}.set-row.set-live{color:var(--text)}.set-time{font-family:var(--font-display);letter-spacing:.06em;color:var(--text-muted);flex-shrink:0}.set-artist{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.set-live-badge{background:var(--accent);color:#fff;font-family:var(--font-display);font-size:.62rem;letter-spacing:.12em;padding:1px 6px;flex-shrink:0}.set-cal{font-family:var(--font-display);font-size:.68rem;letter-spacing:.08em;color:var(--text-muted);text-decoration:none;flex-shrink:0}.set-cal:hover{color:var(--accent)}.merch-notice{background:var(--surface);border:1px solid #333;border-radius:var(--radius);padding:10px 14px;margin-bottom:12px;font-size:.75rem;color:var(--text-muted);line-height:1.5}.merch-notice strong{color:var(--text)}.merch-search-wrap{margin-bottom:10px}.merch-search{width:100%;padding:8px 12px;border:1px solid #333;border-radius:0;background:var(--surface);color:var(--text);font-size:.85rem;outline:none;transition:border-color .15s}.merch-search:focus{border-color:var(--accent)}.merch-search::placeholder{color:var(--text-muted)}.merch-filter-section{margin-bottom:8px}.merch-filter-label{font-size:.7rem;color:var(--text-muted);margin-bottom:6px;font-weight:600}.merch-filter-row{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:4px;max-height:72px;overflow:hidden;transition:max-height .3s ease}.merch-filter-row.expanded{max-height:none}.merch-filter-row::-webkit-scrollbar{display:none}.merch-filter-btn{flex-shrink:0;padding:5px 12px;border:1px solid #333;border-radius:0;background:transparent;color:var(--text-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s ease}.merch-filter-btn:hover{border-color:var(--accent);color:var(--text)}.merch-filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.merch-expand-btn{margin-top:4px;padding:2px 10px;border:none;background:transparent;color:var(--accent);font-size:.7rem;font-weight:600;cursor:pointer}.merch-stats-row{display:flex;align-items:center;gap:10px;padding:6px 0 10px}.merch-stats{font-size:.72rem;color:var(--text-muted)}.merch-restore-btn{font-size:.65rem;padding:3px 8px;border:1px solid #555;border-radius:0;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.merch-restore-btn:hover{border-color:var(--accent);color:var(--text)}.merch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}@media (min-width: 600px){.merch-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}}.merch-card-wrap{position:relative}.merch-hide-btn{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;border-radius:50%;background:#0009;color:#999;font-size:.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;z-index:1}.merch-card-wrap:hover .merch-hide-btn{opacity:1}.merch-hide-btn:hover{background:var(--accent);color:#fff}.merch-card{background:var(--surface);border-radius:var(--radius);overflow:hidden;transition:transform .15s ease;display:flex;flex-direction:column;text-decoration:none;color:var(--text)}.merch-card:hover{transform:translateY(-2px)}.merch-card-img{width:100%;aspect-ratio:1;object-fit:contain;background:#fff;display:block}.merch-card-body{padding:8px 10px 6px;flex:1}.merch-card-band{font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.merch-card-title{font-size:.65rem;color:var(--text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.merch-card-price{font-size:.85rem;font-weight:800;color:var(--accent2);margin-top:4px}.merch-card-buy{display:block;text-align:center;padding:7px 0;margin:0 10px 8px;border-radius:6px;font-size:.7rem;font-weight:700;background:#f90;color:#000;transition:opacity .15s}.merch-card:hover .merch-card-buy{opacity:.85}.merch-empty{grid-column:1 / -1;text-align:center;padding:60px 20px;color:var(--text-muted)}.header-search-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:var(--surface);border:1px solid var(--line);color:var(--text);font-size:1.05rem;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center}.header-search-btn:active{background:#2a2a2a}.card{position:relative}.fav-btn{position:absolute;top:6px;right:6px;z-index:2;width:32px;height:32px;border:none;background:#0000009e;color:#fff;font-size:1.15rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s,color .15s}.fav-btn:active{transform:scale(1.25)}.fav-btn.active{color:var(--accent)}.fav-section-title{grid-column:1 / -1;font-family:var(--font-display);font-size:.92rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--text);padding:14px 0 6px;border-bottom:2px solid var(--accent);margin-bottom:4px;display:flex;align-items:center;gap:10px}.fav-section-title.all-section-title{color:var(--text-muted);border-bottom-color:var(--line);margin-top:12px}.fav-new-count{margin-left:auto;background:var(--accent);color:#fff;font-size:.64rem;letter-spacing:.1em;padding:2px 8px}.card-new{outline:2px solid var(--accent)}.new-badge{position:absolute;top:6px;left:6px;z-index:2;background:var(--accent);color:#fff;font-size:.6rem;font-weight:800;letter-spacing:.08em;padding:3px 7px;border-radius:4px}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;display:flex;justify-content:center;padding:24px 12px}.search-panel{width:100%;max-width:560px;background:var(--surface);border:1px solid #333;border-radius:14px;height:fit-content;max-height:85dvh;display:flex;flex-direction:column;overflow:hidden}.search-bar-row{display:flex;gap:8px;padding:12px;border-bottom:1px solid #2a2a2a}.global-search-input{flex:1;background:#111;border:1px solid #333;border-radius:8px;color:var(--text);font-size:1rem;padding:10px 14px;outline:none}.global-search-input:focus{border-color:var(--accent)}.search-close{background:none;border:none;color:var(--text-muted);font-size:1.6rem;cursor:pointer;padding:0 8px}.search-results{overflow-y:auto;padding:8px 12px 16px}.search-hint{color:var(--text-muted);font-size:.9rem;text-align:center;padding:24px 0}.search-hint .spinner{margin:0 auto 8px}.search-section-title{font-size:.7rem;font-weight:800;letter-spacing:.15em;color:var(--accent);padding:14px 2px 6px}.search-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;text-decoration:none;color:var(--text)}.search-item:hover,.search-item:active{background:#222}.search-item img{width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0}.search-item-main{flex:1;min-width:0;text-decoration:none;color:var(--text)}.search-item-title{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-item-sub{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-fav{position:static;background:none;flex-shrink:0}.digest{padding:8px 0 24px;max-width:640px;margin:0 auto}.digest-header{text-align:left;padding:16px 0 22px;border-bottom:3px solid var(--text);margin-bottom:20px}.digest-badge{display:inline-block;background:var(--accent);color:#fff;font-family:var(--font-display);font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;padding:4px 10px;margin-bottom:14px}.digest-title{font-family:var(--font-display);font-size:clamp(1.7rem,7vw,2.4rem);font-weight:700;text-transform:uppercase;line-height:1.05;letter-spacing:.01em;margin-bottom:8px}.digest-date{font-family:var(--font-display);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px}.digest-intro{font-size:.92rem;line-height:1.8;color:#cfcbc4;text-align:left;border-left:2px solid var(--accent);padding:2px 0 2px 14px}.digest-picks{display:flex;flex-direction:column;gap:1px}.digest-pick{position:relative;display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);padding:14px 14px 14px 46px;text-decoration:none;color:var(--text);transition:border-color .12s}.digest-pick:hover{border-color:var(--text-muted)}.digest-pick:active{background:var(--surface-2)}.digest-pick-rank{position:absolute;top:0;left:0;bottom:0;width:34px;background:var(--accent);color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.15rem;display:flex;align-items:center;justify-content:center}.digest-pick img,.digest-pick-noimg{width:84px;height:84px;object-fit:cover;flex-shrink:0}.digest-pick-noimg{background:#111;display:flex;align-items:center;justify-content:center;font-size:1.8rem}.digest-pick-body{min-width:0}.digest-pick-highlight{font-size:.7rem;font-weight:700;color:var(--accent2);letter-spacing:.05em;margin-bottom:2px}.digest-pick-album{font-weight:700;font-size:1rem}.digest-pick-artist{font-size:.8rem;color:var(--text-muted);margin:2px 0 6px}.digest-pick-comment{font-size:.82rem;line-height:1.65;color:#ccc;margin-top:8px}.digest-footnote{text-align:center;font-size:.7rem;color:var(--text-muted);margin-top:20px}.merch-report-btn{position:absolute;top:4px;right:32px;z-index:2;width:24px;height:24px;border:none;background:#0000009e;color:var(--text-muted);font-family:var(--font-display);font-size:.85rem;font-weight:700;line-height:1;cursor:pointer}.merch-report-btn:hover{background:var(--accent);color:#fff}.mr-target{display:flex;flex-direction:column;gap:3px;background:var(--surface-2);border-left:2px solid var(--accent);padding:10px 12px;margin-bottom:14px;font-size:.82rem}.mr-target strong{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em}.mr-target span{color:var(--text-muted)}.mr-target code{font-size:.72rem;color:var(--text-muted);letter-spacing:.08em}.modal-content textarea{width:100%;background:var(--surface-2);border:1px solid var(--line);color:var(--text);font-family:inherit;font-size:.88rem;padding:9px 10px;resize:vertical}.modal-content textarea:focus{outline:none;border-color:var(--accent)}
