:root{color-scheme:light;--bg: #f8f5ee;--text: #352c29;--dim: #71615b;--accent: #702a40;--grid: #e8dfd5;--line: #d5c8bc;--green: #35604c;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box;margin:0}body{min-width:280px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}.app{width:100%;max-width:436px;margin-inline:auto;padding:max(20px,env(safe-area-inset-top)) 24px max(12px,env(safe-area-inset-bottom))}.header{display:flex;justify-content:center;align-items:center;gap:12px;padding-bottom:19px;border-bottom:1px solid var(--line)}.brand-mark{width:28px;height:40px;color:var(--accent)}.instrument-name{color:var(--accent);font:500 34px/1.1 Georgia,Times New Roman,serif;letter-spacing:-1px}.tagline{margin-top:5px;font-size:13px;color:var(--dim);letter-spacing:.2px}.strings{min-inline-size:0;border:0;padding:0;margin-top:18px;text-align:center}.strings legend{float:left;width:100%;font:500 23px/1.25 Georgia,Times New Roman,serif}#string-help{clear:both;padding-top:6px;font-size:13px;color:var(--dim)}.guitar{touch-action:manipulation;position:relative;width:100%;max-width:292px;aspect-ratio:312 / 350;margin:12px auto 0}.headstock{display:block;width:100%;height:100%}.guitar-body{fill:url(#guitar-rosewood);stroke:#3e2921;stroke-width:1.25}.guitar-neck{fill:url(#guitar-ebony)}.guitar-bevel{stroke:#d8ac80;stroke-opacity:.32}.guitar-grain{stroke:#efc492;stroke-opacity:.09}.guitar-binding{stroke:#cba37e;stroke-opacity:.65}.guitar-inlay{fill:url(#guitar-bone)}.guitar-end{fill:url(#guitar-end);pointer-events:none}.peg-shaft{stroke:#b6936d;stroke-width:6;stroke-linecap:round}.fret{stroke:#c6a985;stroke-width:2.5}.nut{fill:url(#guitar-bone)}.peg-ring{fill:url(#guitar-brass);stroke:#f1d9b7;stroke-width:1.2}.peg-pin{fill:#604634;stroke:#f1d9b7;stroke-width:.75}.string-line{stroke:#ead5b1}.string-drawing.selected .string-line{stroke:#ffc3cd;stroke-width:4}.string-drawing.selected .peg-pin{fill:var(--accent)}.string-btn,.peg-button{position:absolute;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);padding:0;border:0;background:transparent;color:#49382e}.string-btn span,.peg-button span{display:flex;align-items:center;justify-content:center;border:1px solid #b7a18b;transition:background .16s,color .16s,box-shadow .16s}.string-btn{width:44px;height:44px;border-radius:50%;font-size:13px;font-weight:600}.string-btn span{width:30px;height:30px;border-radius:50%;background:var(--bg)}.peg-button{width:58px;height:46px;border-radius:16px;font:600 20px Georgia,Times New Roman,serif}.peg-button span{width:49px;height:34px;border-radius:13px;background:linear-gradient(#fbf4e8,#e6d6be);box-shadow:inset 0 1px #fffbf4}.peg-button sup{font:500 12px Segoe UI,sans-serif;align-self:center;margin:-9px 0 0 2px}.string-btn.active span,.peg-button.active span{color:#fff8f0;background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 2px var(--bg)}.string-btn.in-tune span,.peg-button.in-tune span{background:var(--green);border-color:var(--green)}.selected-string{font:500 19px/1.3 Georgia,Times New Roman,serif;margin-top:9px}.tuning-name{display:block;font:12px/1.5 Segoe UI,sans-serif;color:var(--dim);margin-top:4px}.tuner{margin-top:16px}.scale-labels{display:flex;justify-content:space-between;color:var(--dim);font-size:12px;font-weight:600}.scale-labels span:nth-child(2){color:var(--accent)}.display{position:relative;height:136px;margin-top:10px;isolation:isolate}.display canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.centerline{position:absolute;left:50%;top:0;bottom:12px;width:1px;background:var(--line)}.centerline.lit{background:var(--green)}.accidental{position:absolute;top:42%;color:var(--dim);font-size:18px}.flat{left:0}.sharp{right:0}.needle{position:absolute;left:50%;top:46%;transform:translate(-50%,-100%);z-index:2;display:flex;flex-direction:column;align-items:center;color:var(--accent)}.needle-num{font-size:28px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.needle-hint{font-size:12px;font-weight:600;margin:2px 0 3px;white-space:nowrap}.needle-nib{width:18px;height:21px}.needle.idle{opacity:.5}.note-circle{position:absolute;left:50%;top:78%;transform:translate(-50%,-50%);width:60px;height:60px;border:1px solid var(--line);border-radius:50%;display:flex;justify-content:center;align-items:center;color:var(--accent);background:var(--bg);font:500 30px Georgia,Times New Roman,serif}.note-circle sup{font:500 15px Segoe UI,sans-serif;margin-top:-12px}.note-circle.in-tune{background:var(--green);border-color:var(--green);color:#fff}.tune-flash,.bloom{display:none}.session-controls{text-align:center}.session-status{min-height:24px;font-size:13px;line-height:1.5;margin:3px 0 10px}.session-status.error{color:var(--accent);font-weight:600}.button{min-height:52px;width:100%;padding:13px 16px;border:1.5px solid var(--accent);border-radius:15px;font-size:16px;font-weight:600;transition:background .16s}.button-primary{background:var(--accent);color:#fff8f0}.button-outline{background:transparent;color:var(--accent)}.button:disabled{cursor:wait;opacity:.7}.mic-help{margin-top:10px;font-size:12px;line-height:1.5;color:var(--dim)}.footer{text-align:center;color:var(--dim);font-size:11px;line-height:1.5;margin-top:19px}.footer a{display:inline-flex;align-items:center;min-height:44px;padding:8px;color:inherit;text-decoration-color:#b7a18b;text-underline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}button:focus-visible,a:focus-visible,h1:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.string-btn:focus-visible,.peg-button:focus-visible{outline-color:#282322;box-shadow:0 0 0 4px var(--bg);z-index:1}@media(hover:hover){.button-primary:hover{background:#552034}.button-outline:hover{background:#eee2e1}.peg-button:hover span,.string-btn:hover span{box-shadow:0 0 0 2px #bca796}}@media(max-width:360px){.app{padding-inline:12px}.instrument-name{font-size:31px}}@media(min-width:700px){.app{padding-top:32px}}@media(max-height:750px){.app{padding-top:14px}.header{padding-bottom:12px}.strings{margin-top:12px}.tuner{margin-top:14px}.display{height:132px}.footer{margin-top:12px}}@media(prefers-reduced-motion:reduce){.button,.string-btn,.string-btn span,.peg-button,.peg-button span,.needle,.note-circle{animation:none;transition:none;scroll-behavior:auto}}@media(forced-colors:active){.string-btn.active,.peg-button.active{outline:3px solid Highlight}.headstock,.centerline,.needle-nib{forced-color-adjust:none}}.string-hit-path{stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}
