:root{color:#fff;background:#15120e;font-family:Arial,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0;background:url(/background.jpg) center/cover fixed}button,input,select{font:inherit}.app-shell{min-height:100svh;display:grid;grid-template-columns:245px 1fr;background:#0000008c}.practice-panel{padding:30px 22px;background:#13100de0;border-right:1px solid rgba(255,255,255,.18)}h1{margin:0 0 55px;font-size:1.7rem;font-weight:700}h1 span{color:#e9b66f}.chord-picker{padding:0;border:0;margin:0}.chord-picker legend{margin-bottom:14px;font-size:.85rem;font-weight:700}.chord-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.chord-option input{position:absolute;opacity:0}.chord-option span{display:grid;min-height:38px;place-items:center;border:1px solid rgba(255,255,255,.26);border-radius:5px;color:#ddd;cursor:pointer;transition:background .15s}.chord-option input:checked+span{color:#21170c;background:#e9b66f;border-color:#e9b66f}.chord-option input:focus-visible+span,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #fff;outline-offset:3px}.progression-toggle{width:100%;margin-top:18px;padding:9px;border:1px solid rgba(255,255,255,.3);border-radius:5px;color:#fff;background:transparent;cursor:pointer;text-align:left}.progression-toggle:hover{border-color:#e9b66f;color:#e9b66f}.progression-builder{padding-top:12px}.progression-builder>p{margin:0 0 8px;color:#ccc;font-size:.72rem}.progression-options{display:flex;flex-wrap:wrap;gap:5px}.progression-options button{min-width:33px;padding:5px 6px;border:0;border-radius:3px;color:#251a0e;background:#e9b66f;cursor:pointer;font-size:.74rem}.progression-current{min-height:32px;margin-top:10px;padding:8px;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#eee;font-size:.72rem;line-height:1.4;word-break:break-word}.clear-progression{margin-top:7px;padding:0;border:0;background:transparent;color:#bbb;cursor:pointer;font-size:.72rem;text-decoration:underline}.practice-stage{min-height:100svh;padding:30px clamp(25px,7vw,100px);display:flex;flex-direction:column;position:relative}.skip-button{align-self:flex-end;padding:8px 0;border:0;color:#fff;background:transparent;font-size:.9rem;cursor:pointer}.skip-button:hover{color:#e9b66f}.chord-workspace{flex:1;display:grid;grid-template-columns:1fr minmax(240px,330px);align-items:center;gap:65px;max-width:900px;width:100%;margin:auto}.chord-copy{text-align:center}.chord-display{display:grid;width:min(100%,440px);height:clamp(140px,18vw,220px);margin:0 auto;place-items:center;overflow:hidden}.chord-copy #chord-name{margin:0;font-size:clamp(9rem,20vw,14rem);font-weight:700;line-height:.85;letter-spacing:-.08em;white-space:nowrap}.chord-copy #chord-name.is-long{font-size:clamp(4rem,8vw,7.5rem);letter-spacing:-.06em}.chord-copy #chord-name.is-changing{animation:pop .22s ease-out}.chord-copy #chord-subtitle{margin:18px 0 0;color:#e9b66f;font-size:1rem}.progress-track{width:min(220px,75%);height:4px;margin:24px auto 0;overflow:hidden;border-radius:4px;background:#ffffff40}.progress-track span{display:block;width:100%;height:100%;transform:translate(-100%);background:#e9b66f}.progress-track span.is-running{animation:chord-progress var(--duration) linear forwards}@keyframes pop{0%{opacity:.2;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@keyframes chord-progress{to{transform:translate(0)}}.diagram-wrap{width:min(100%,330px);justify-self:center}.chord-diagram{position:relative;height:320px;padding:35px 8px 5px;border-top:8px solid #fff}.string-grid{position:relative;height:100%;display:grid;grid-template-columns:repeat(6,1fr);background:repeating-linear-gradient(to bottom,transparent 0 calc(20% - 1px),rgba(255,255,255,.55) calc(20% - 1px) 20%)}.diagram-string{position:relative}.string-line{position:absolute;left:50%;height:100%;border-left:1px solid rgba(255,255,255,.7)}.string-status{position:absolute;z-index:1;top:-34px;left:50%;transform:translate(-50%);font-size:1.35rem}.open{color:#e9b66f}.muted{color:#aaa}.finger-dot,.barre{position:absolute;z-index:2;transform:translate(-50%,-50%);display:grid;place-items:center;height:31px;border-radius:18px;background:#e9b66f;color:#1d150c;font-size:.72rem;font-weight:700}.finger-dot{left:50%;width:31px}.barre{transform:translateY(-50%);min-width:31px}.fret-1{top:10%}.fret-2{top:30%}.fret-3{top:50%}.fret-4{top:70%}.fret-5{top:90%}.nut,.fret-labels{display:none}.tempo-controls{width:100%;max-width:900px;margin:auto;padding-top:20px;border-top:1px solid rgba(255,255,255,.28);display:grid;grid-template-columns:1fr 160px;gap:35px}.range-control,.beats-control{display:grid;gap:9px;color:#eee;font-size:.82rem}.range-control output{color:#e9b66f;font-weight:700}input[type=range]{width:100%;accent-color:#e9b66f;cursor:pointer}select{padding:8px;border:1px solid rgba(255,255,255,.36);border-radius:4px;background:#0006;color:#fff;cursor:pointer}option{color:#111}@media (max-width: 700px){.app-shell{grid-template-columns:1fr}.practice-panel{padding:21px;border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}h1{margin-bottom:24px}.chord-options{grid-template-columns:repeat(5,1fr)}.practice-stage{min-height:650px;padding:20px}.chord-workspace{grid-template-columns:1fr;gap:20px}.chord-display{height:145px}.chord-copy #chord-name{font-size:9rem}.chord-copy #chord-name.is-long{font-size:clamp(3.7rem,17vw,5.5rem)}.diagram-wrap{width:min(78%,270px)}.chord-diagram{height:260px}.tempo-controls{grid-template-columns:1fr 140px;gap:20px}}
