:root{--bg:#fbfbf9;--ink:#20211f;--muted:#777973;--line:#dedfd9;--accent:#1e6a5d;--fs:17px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,system-ui,sans-serif}.nav{height:43px;padding:0 max(18px,calc((100vw - 1050px)/2));display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.wordmark{border:0;background:0;color:var(--ink);font:700 16px Manrope;padding:0;cursor:pointer}.nav span{flex:1}.nav a,.listen{color:var(--ink);text-decoration:none}.playerbar{height:59px;padding:0 max(18px,calc((100vw - 1050px)/2));display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}.title{min-width:145px;line-height:1.25}.title b{display:block;font-size:14px}.title small,.transpose small{font-size:10px;color:var(--muted)}.transpose{display:grid;grid-template-columns:30px 60px 30px;grid-template-rows:28px 13px;text-align:center}.transpose button,.font button{border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.transpose button:first-child{border-radius:4px 0 0 4px}.transpose button:last-of-type{border-radius:0 4px 4px 0}.transpose output{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:4px;font:600 13px 'IBM Plex Mono',monospace}.transpose small{grid-column:1/4}.font{display:flex;gap:4px}.font button{padding:6px 8px;border-radius:4px;font:600 10px 'IBM Plex Mono',monospace}.listen{margin-left:auto;font-size:11px;font-weight:600}.chordbar{position:sticky;top:59px;z-index:9;display:flex;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,white);padding:0 max(18px,calc((100vw - 1050px)/2));min-height:110px}.chordbar-label{width:80px;flex:none;padding:18px 0;color:var(--muted);font:10px/1.35 'IBM Plex Mono',monospace;text-transform:uppercase}.chord-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));width:100%;align-content:center}.chord{border-left:1px solid var(--line);padding:8px 7px;min-height:104px;text-align:left;background:transparent;color:var(--ink);cursor:pointer}.chord:hover{background:#f1f4ef}.chord b{display:block;font:700 14px 'IBM Plex Mono',monospace;margin-bottom:4px}.chord img{height:65px;width:54px;object-fit:contain;object-position:left top}.no-chord{font:10px 'IBM Plex Mono',monospace;color:var(--muted);padding-top:29px}main{max-width:760px;margin:0 auto;padding:31px 20px 110px}.toolhint{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px;margin-bottom:34px}.toolhint button{border:0;background:transparent;text-decoration:underline;color:var(--muted);font-size:10px;cursor:pointer}.section{margin:0 0 42px}.section h2{font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 17px}.line{position:relative;padding-top:21px;min-height:53px;font-size:var(--fs);line-height:1.46;white-space:pre-wrap}.chord-slot{position:absolute;top:0;display:inline-block;min-width:40px;cursor:ew-resize;touch-action:none}.chord-slot b{display:inline-block;color:var(--accent);font:700 12px 'IBM Plex Mono',monospace;background:#e8f0ec;padding:2px 4px;border-radius:2px;user-select:none}.chord-slot.dragging b{box-shadow:0 0 0 2px var(--accent)}.chorus{border-left:2px solid var(--accent);padding:18px 22px 10px;margin-left:-22px;background:#f3f7f4}.break{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin:40px 0;color:var(--muted);font:11px 'IBM Plex Mono',monospace}.break b{color:var(--accent);margin-right:35px}dialog{border:1px solid var(--line);border-radius:7px;color:var(--ink);width:min(540px,calc(100vw - 32px));padding:0;box-shadow:0 18px 70px #0003}dialog::backdrop{background:#20211f44}.library-top{display:flex;justify-content:space-between;align-items:start;padding:25px;border-bottom:1px solid var(--line)}.library-top small{font:10px 'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--muted)}.library-top h2{margin:5px 0 0;font-size:29px}.library-top button{border:0;background:none;font-size:26px;cursor:pointer}.library-tools{padding:14px 25px;border-bottom:1px solid var(--line);font-size:12px}.library-tools select{border:0;font:600 12px Manrope;color:var(--accent);background:transparent}.library-song{display:grid;grid-template-columns:1fr auto auto;gap:15px;padding:16px 25px;border-bottom:1px solid var(--line);font-size:13px}.library-song small{color:var(--muted);font-size:11px}.stars{letter-spacing:2px;color:var(--accent)}.toast{position:fixed;bottom:22px;left:50%;translate:-50% 100px;background:var(--ink);color:white;border-radius:40px;padding:10px 15px;font-size:11px;transition:.25s}.toast.show{translate:-50% 0}@media(max-width:640px){.playerbar{gap:12px}.title{min-width:88px}.listen{font-size:0}.listen:after{content:'▶';font-size:14px}.chordbar{top:59px}.chordbar-label{width:61px}.chord-grid{grid-template-columns:repeat(5,minmax(64px,1fr));min-width:410px}.chordbar{overflow:auto}.chord{min-height:94px}.chord img{height:56px}.line{font-size:calc(var(--fs) - 1px)}.toolhint{line-height:1.4}.nav span{display:none}.chorus{margin-left:-8px;padding-left:14px}.font{display:none}}
