.screen{flex-direction:column;justify-content:center;max-width:420px;min-height:100dvh;margin:0 auto;padding:40px 20px;display:flex}.brand{letter-spacing:-.01em;margin:0 0 36px;font-size:36px;line-height:1.1}.field{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.field label{color:var(--muted);font-size:16px;font-weight:500}.field input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);height:56px;color:var(--text);font:500 18px var(--font-body);padding:0 18px}.field input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #ffb38a40}.btn{border-radius:var(--radius-lg);background:var(--accent);width:100%;min-height:56px;color:var(--on-accent);font:600 18px var(--font-body);cursor:pointer;border:0;margin-top:8px;padding:0 24px}.btn:disabled{opacity:.6;cursor:default}.btn:focus-visible{outline:3px solid var(--text);outline-offset:3px}.btn-secondary{color:var(--text);border:1px solid var(--line);background:0 0}.hint{text-align:center;color:var(--muted);margin:16px 0 0;font-size:15px}.error{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);text-align:center;margin:20px 0 0;padding:14px 16px;font-weight:500}.greeting{margin:0 0 32px;font-size:32px}body.no-scroll{overflow:hidden}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}:where(button,a,input):focus-visible{outline:3px solid var(--accent);outline-offset:2px}.page{max-width:640px;padding:calc(20px + env(safe-area-inset-top)) 20px calc(32px + env(safe-area-inset-bottom));margin:0 auto}.with-mini .page{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.muted{color:var(--muted)}.center{text-align:center}.empty{margin:48px 0;font-size:18px}.btn-inline{width:auto;min-height:48px;margin:0}.notice{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);text-align:center;margin:20px 0;padding:16px}.notice p{color:var(--accent);margin:0 0 12px;font-weight:500}.inline-error{color:var(--accent);margin:10px 0 0;font-weight:500}.icon-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;display:inline-grid}.bar{background:var(--line);border-radius:3px;height:6px;display:block;overflow:hidden}.bar>span{background:var(--accent);border-radius:3px;height:100%;display:block}.cover{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--surface);flex:none;position:relative;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%;display:block}.cover-tile{color:#f4eff7;background-image:linear-gradient(160deg,#ffffff1f,#00000038);flex-direction:column;justify-content:flex-end;gap:6px;padding:14px;display:flex}.cover-title{font:700 20px/1.1 var(--font-display);overflow-wrap:anywhere;-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cover-author{opacity:.85;font-size:13px;font-weight:500}.cover-letter{font:700 22px var(--font-display);margin:auto}.cover-grid{border-radius:var(--radius-md);width:100%}.cover-card{width:92px;padding:10px}.cover-card .cover-title{-webkit-line-clamp:3;font-size:13px}.cover-mini{border-radius:10px;width:48px;padding:0}.cover-player{border-radius:var(--radius-lg);width:min(300px,78vw,42dvh);margin:8px auto 0;box-shadow:0 24px 60px #00000073}.cover-player.cover-tile{gap:10px;padding:26px}.cover-player .cover-title{-webkit-line-clamp:5;font-size:32px}.cover-player .cover-author{font-size:17px}.lib-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.lib-greeting{color:var(--muted);margin:4px 0;font-size:17px;font-weight:500}.lib-heading{letter-spacing:-.01em;margin:0;font-size:32px;line-height:1.1}.account{position:relative}.account-btn{border:1px solid var(--line);background:var(--surface);width:48px;height:48px;font:700 20px var(--font-display);cursor:pointer;border-radius:50%}.account-menu{z-index:10;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-width:160px;padding:6px;position:absolute;top:56px;right:0;box-shadow:0 12px 32px #0006}.account-menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;width:100%;min-height:48px;padding:0 14px;font-size:17px;font-weight:500}.account-menu button:hover{background:var(--line)}.dialog{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:min(360px,100vw - 40px);color:var(--text);padding:24px}.dialog::backdrop{background:#0a080eb3}.dialog h2{margin:0 0 20px;font-size:24px}.dialog-actions{gap:12px;display:flex}.dialog-actions .btn{flex:1;margin:0}.search{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);height:52px;color:var(--muted);align-items:center;gap:10px;margin-bottom:24px;padding:0 16px;display:flex}.search:focus-within{border-color:var(--accent)}.search input{min-width:0;height:100%;color:var(--text);font:500 17px var(--font-body);background:0 0;border:0;flex:1}.search input:focus{outline:none}.search input::placeholder{color:var(--muted)}.section-label{font:600 15px var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.continue{margin-bottom:24px}.continue-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:12px;padding:12px;display:flex}.continue-link{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.continue-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.continue-title{font:700 19px/1.2 var(--font-display);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.continue-meta{color:var(--muted);font-size:15px}.continue-text .bar{margin-top:4px}.round-play{background:var(--accent);width:56px;height:56px;color:var(--on-accent);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.round-play:disabled{opacity:.6}.chips{scrollbar-width:none;gap:8px;margin-bottom:20px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:22px;flex:none;min-height:44px;padding:0 18px;font-size:16px;font-weight:500}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--on-accent);font-weight:600}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px;margin:0;padding:0;list-style:none;display:grid}.grid-item{flex-direction:column;gap:4px;display:flex}.grid-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:17px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.grid-meta{color:var(--muted);font-size:15px}.title-page{padding-top:0}.title-hero{min-height:300px;padding:calc(12px + env(safe-area-inset-top)) 20px 24px;color:#f4eff7;background-image:linear-gradient(160deg,#ffffff1a,#0000004d);background-position:50%;background-size:cover;flex-direction:column;justify-content:space-between;margin:0 -20px 20px;display:flex;position:relative}.title-hero.has-cover:before{content:"";background:linear-gradient(#15111d8c,#15111deb);position:absolute;inset:0}.title-hero>*{position:relative}.hero-back{background:#00000040;margin-left:-8px}.hero-text{margin-top:40px}.hero-title{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 0 10px;font-size:32px;line-height:1.1}.hero-byline{margin:0 0 6px;font-size:17px;font-weight:500}.hero-stats{opacity:.85;margin:0;font-size:15px}.primary-btn{margin:0 0 20px}.description{color:var(--muted);white-space:pre-line;margin:0 0 24px;font-size:16px;line-height:1.55}.discs{flex-direction:column;gap:10px;display:flex}.disc{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.disc-head{background:var(--surface);text-align:left;cursor:pointer;border:0;align-items:center;gap:12px;width:100%;min-height:56px;padding:0 12px 0 16px;display:flex}.disc-name{font:700 18px var(--font-display)}.disc-status{color:var(--muted);flex:1;font-size:15px}.disc-status.active{color:var(--accent)}.disc-chevron{color:var(--muted);transition:transform .15s;display:grid}.disc-chevron.open{transform:rotate(180deg)}.track-list{margin:0;padding:4px 0;list-style:none}.track-row{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 16px;font-size:16px;display:flex}.track-row.played{color:var(--muted)}.track-row.current{background:var(--surface);color:var(--accent);font-weight:600}.track-num{text-align:right;font-variant-numeric:tabular-nums;width:2ch;color:var(--muted);flex:none}.track-row.current .track-num{color:var(--accent)}.track-name{flex:1;min-width:0}.track-dur{font-variant-numeric:tabular-nums;color:var(--muted);flex:none;font-size:15px}.now{font-weight:500}.mini{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:20;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:8px;max-width:616px;margin:0 auto;padding:8px;display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 36px #00000080}.mini-bar{background:var(--line);height:3px;position:absolute;top:0;left:0;right:0}.mini-bar>span{background:var(--accent);height:100%;display:block}.mini-open{flex:1;align-items:center;gap:12px;min-width:0;min-height:48px;display:flex}.mini-text{flex-direction:column;min-width:0;display:flex}.mini-title{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.mini-meta{color:var(--muted);font-size:14px}.mini-play{background:var(--accent);width:52px;height:52px;color:var(--on-accent);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.mini-loading{border:3px solid #2b160b4d;border-top-color:var(--on-accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.player{z-index:30;padding:calc(8px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));background:var(--ground);flex-direction:column;gap:18px;display:flex;position:fixed;inset:0;overflow-y:auto}.player>*{width:100%;max-width:480px;margin-left:auto;margin-right:auto}.player-top{justify-content:space-between;align-items:center;display:flex}.player-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:15px;font-weight:600}.player .cover-player{width:min(300px,78vw,42dvh)}.player-info{text-align:center}.player-title{overflow-wrap:anywhere;margin:0 0 6px;font-size:26px;line-height:1.15}.player-meta{color:var(--muted);margin:0;font-size:17px}.scrubber input{--fill:0%;appearance:none;cursor:pointer;background:0 0;width:100%;height:44px;margin:0}.scrubber input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill), var(--line) var(--fill));border-radius:3px;height:6px}.scrubber input::-moz-range-track{background:linear-gradient(to right, var(--accent) var(--fill), var(--line) var(--fill));border-radius:3px;height:6px}.scrubber input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:0;border-radius:50%;width:22px;height:22px;margin-top:-8px}.scrubber input::-moz-range-thumb{background:var(--accent);border:0;border-radius:50%;width:22px;height:22px}.scrubber input:disabled{opacity:.5}.scrubber-times{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:15px;display:flex}.controls{justify-content:space-between;align-items:center;display:flex}.ctl{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:56px;height:56px;padding:0;display:grid}.ctl:disabled{opacity:.35;cursor:default}.ctl-play{background:var(--accent);width:84px;height:84px;color:var(--on-accent);cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.ctl-loading{font-size:15px;font-weight:600}.player-extras{justify-content:center;gap:12px;display:flex}.pill{border:1px solid var(--line);background:var(--surface);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:24px;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:16px;font-weight:600;display:inline-flex}.pill.active{border-color:var(--accent);color:var(--accent)}.player .notice{margin:0 auto}.offline-banner{z-index:15;padding:calc(10px + env(safe-area-inset-top)) 20px 10px;background:var(--line);color:var(--text);text-align:center;margin:0;font-size:15px;font-weight:500;position:sticky;top:0}.toast{left:16px;right:16px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:40;border-radius:var(--radius-sm);background:var(--text);max-width:480px;color:var(--ground);text-align:center;margin:0 auto;padding:14px 18px;font-weight:600;position:fixed;box-shadow:0 12px 36px #00000080}.toast.above-mini{bottom:calc(100px + env(safe-area-inset-bottom))}.unavailable{opacity:.4}.grid-cover{display:block;position:relative}.badge{background:var(--accent);width:28px;height:28px;color:var(--on-accent);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:8px;right:8px;box-shadow:0 2px 8px #0006}.dialog-text{color:var(--muted);margin:-8px 0 20px;font-size:16px;line-height:1.5}.sheet{width:100%;max-width:520px;padding-bottom:calc(24px + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:0;margin:auto auto 0}.sheet .inline-error{margin:-8px 0 16px}.title-actions{gap:12px;margin-bottom:20px;display:flex}.title-actions .primary-btn{flex:1;min-width:0;margin:0}.dl-wrap{display:flex;position:relative}.dl-btn{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;width:76px;min-height:56px;padding:4px;font-size:13px;font-weight:600;display:flex}.dl-btn:disabled{opacity:.45;cursor:default}.dl-btn.done{border-color:var(--accent);color:var(--accent)}.dl-menu{min-width:200px;top:64px}.dl-panel{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:10px;margin:-6px 0 20px;padding:16px;display:flex}.dl-panel p{margin:0}.dl-panel .btn{align-self:flex-start}.dl-progress{font-weight:600}.dl-hint{font-size:15px}.dl-actions{gap:12px;display:flex}.dl-status{color:var(--accent);margin:-8px 0 20px;font-size:15px;font-weight:500}.dl-stale{min-height:44px;color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin:-8px 0 16px;padding:0;font-size:15px;font-weight:600;text-decoration:underline;display:block}.saved-pill{border:1px solid var(--accent);color:var(--accent);border-radius:14px;align-items:center;gap:6px;margin-top:10px;padding:4px 12px;font-size:14px;font-weight:600;display:inline-flex}
