@charset "UTF-8";
:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#183d32;background:#f5f4ed;font-synthesis:none;--green:#143e32;--muted:#61746b;--line:#dce3da;--flat:#3158a5;--sharp:#a75524;--tuned:#25734d;--shadow:0 8px 32px #173c2f06}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}:focus-visible{outline:3px solid #5478c6;outline-offset:3px}button{color:inherit}.skip-link{position:absolute;left:20px;top:-100px;padding:12px;background:white;z-index:10}.skip-link:focus{top:10px}.site-header{max-width:1320px;margin:auto;padding:26px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{color:var(--green);text-decoration:none;display:flex;align-items:center;gap:12px}.brand-mark{background:var(--green);color:#f4f0dd;display:grid;place-items:center;width:44px;height:44px;border-radius:12px 12px 12px 2px;font:700 32px Georgia,serif}.brand strong{font-size:21px;letter-spacing:.06em}.brand-pitch{font-weight:400;letter-spacing:.12em;margin-left:5px}.brand small{display:block;font-size:8px;letter-spacing:.3em;margin-top:3px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:18px}.quiet,.subtle{color:var(--muted);font-size:13px}.quiet{font-size:12px}main{max-width:1240px;margin:0 auto;padding:38px 0 20px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.16em;color:var(--muted);margin:0 0 10px}h1{font-size:clamp(30px,4vw,46px);letter-spacing:-.04em;line-height:1.1;font-weight:550;margin:0 0 12px}h1 span{color:#ce8e54}.intro-copy{color:var(--muted);font-size:15px;margin:0;line-height:1.6}.private-badge{display:flex;align-items:center;gap:8px;background:#e9ede3;padding:10px 14px;border-radius:99px;font-size:11px;color:#466550}.badge-dot{background:#478564;width:6px;height:6px;border-radius:50%}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 334px;gap:20px}.card{background:#fffefa;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:26px}.card-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}h2{font-size:16px;font-weight:600;margin:0;letter-spacing:-.015em}.status{background:#eef0e9;padding:6px 10px;border-radius:99px;font-size:10px;color:var(--muted)}.status.active{background:#e3efdf;color:#27663f}.status.error{background:#f8e9df;color:#925124}.tuner{min-height:430px}.pitch-display{text-align:center;padding:22px 0 12px}.pitch-display .eyebrow{font-size:9px;margin-bottom:0}.note-line{height:106px;display:flex;justify-content:center;align-items:baseline;gap:2px}#note{font-size:88px;font-weight:500;letter-spacing:-.06em;line-height:1.2}#octave{font-size:32px;font-weight:350;color:#75847b}.tuning-text{font-size:14px;margin:0 0 14px;color:var(--muted);min-height:22px}.readouts{display:flex;justify-content:center;gap:28px;font-size:11px;color:var(--muted)}.readouts strong{font-variant-numeric:tabular-nums;font-size:18px;font-weight:550;color:var(--green)}.tuning-meter{width:100%;margin:20px auto 22px;max-width:560px}.meter-rail{height:22px;background:linear-gradient(to right,#e7ebf3 0%,#eff2e8 45%,#e1eddf 45%,#e1eddf 55%,#f3eee5 55%,#f4e8de 100%);border-radius:8px;position:relative}.centre-line{position:absolute;top:-6px;height:34px;width:1px;background:#4a7559;left:50%}.needle{position:absolute;left:50%;top:-5px;height:32px;width:5px;background:var(--green);border-radius:5px;transform:translateX(-50%);opacity:0;transition:left 80ms linear}.meter-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:10px}.capture-actions{display:flex;justify-content:center;gap:10px}.button{border:1px solid transparent;border-radius:9px;font-size:12px;font-weight:600;padding:12px 18px;min-height:44px;transition:background .15s}.primary{background:var(--green);color:#fffefa}.primary:hover{background:#245540}.secondary{border-color:var(--line);background:transparent}.secondary:hover{background:#edf0e7}.message{text-align:center;font-size:11px;color:var(--muted);line-height:1.7;min-height:19px;margin:14px 0 0}.message.error{color:#925124}.input-level{display:flex;align-items:center;gap:12px;font-size:10px;color:var(--muted);padding-top:14px;margin-top:16px;border-top:1px solid #e8ebe3}.input-level meter{height:7px;flex:1}.input-level span:last-child{width:63px;text-align:right;font-variant-numeric:tabular-nums}.text-button{background:none;border:0;font-size:10px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:4px;min-height:28px}.settings h2{margin-bottom:12px}.setting-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;margin:18px 0 8px;gap:10px}.setting-label span{color:var(--muted);font-size:10px;font-weight:400}.reference-control{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;height:46px;overflow:hidden;gap:5px}.reference-control button{border:0;background:#f3f5ee;height:100%;width:40px;font-size:20px}.reference-control input{border:0;background:transparent;width:100%;min-width:0;text-align:center;font-size:19px;font-variant-numeric:tabular-nums}.reference-control span{font-size:11px;color:var(--muted);margin-right:10px}.setting-help{font-size:10px;color:var(--muted);line-height:1.7;margin:7px 0 0}select,input[type=number]{color:var(--green)}select,#transpose{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fffefa;padding:10px;font-size:11px}input[type=range]{width:100%;accent-color:#377653;min-height:30px;margin:0}.practice-tip{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.practice-tip .eyebrow{font-size:8px}.practice-tip p{font:italic 15px/1.6 Georgia,serif;margin:0;color:#507161}.grid-card{grid-column:1/-1}.card-heading .subtle{font-size:11px;margin:7px 0 0}.grid-legend{display:flex;align-items:center;gap:16px;font-size:9px;color:var(--muted);margin:20px 0 16px}.grid-legend span{display:flex;align-items:center;gap:5px}.grid-legend span:last-child{margin-left:auto}.grid-legend i{width:7px;height:7px;display:inline-block;border-radius:50%}.flat-swatch{background:var(--flat)}.tuned-swatch{background:var(--tuned)}.sharp-swatch{background:var(--sharp)}.grid-scroll{overflow-x:auto;overscroll-behavior-x:contain}.note-grid{display:grid;grid-template-columns:30px repeat(12,minmax(35px,1fr));gap:6px;min-width:600px}.note-header,.octave-label{font-size:9px;color:var(--muted);display:grid;place-items:center;min-height:22px}.note-cell{border:1px solid #e2e7dd;background:#f5f6f0;border-radius:7px;min-height:38px;padding:4px;color:#77867b;font-size:10px;font-variant-numeric:tabular-nums}.note-cell.active{box-shadow:inset 0 0 0 2px var(--green)}.note-cell.flat{background:#e9edf8;border-color:#cfd9ef;color:var(--flat)}.note-cell.tuned{background:#e5efdf;border-color:#c9dcc2;color:var(--tuned)}.note-cell.sharp{background:#f8eadc;border-color:#edd8c3;color:var(--sharp)}.grid-detail{font-size:10px;margin:12px 0}.session-summary{border-top:1px solid var(--line);padding-top:14px;margin:14px 0 0;font-size:11px;color:var(--muted)}.timeline-card{grid-column:1/-1}.timeline-tag{font-size:8px;letter-spacing:.13em;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:6px 9px}#timeline{width:100%;height:210px;margin-top:16px;overflow:visible}.empty-chart{font:12px system-ui;fill:#869587}.chart-label{font:10px system-ui;fill:#6d8274}.help{margin-top:20px;padding:18px 24px}.help summary{font-size:12px;font-weight:550}.help-content{font-size:12px;line-height:1.8;color:var(--muted);max-width:850px}.help-content p{margin:12px 0}footer{max-width:1240px;margin:0 auto;padding:20px 0 34px;display:flex;justify-content:space-between;gap:16px;font-size:11px;color:var(--muted)}footer .subtle{font-size:11px}
@media(min-width:1450px){main{padding-top:44px}}
@media(max-width:1320px){main,footer{margin-left:40px;margin-right:40px}}
@media(max-width:900px){.workspace{grid-template-columns:minmax(0,1fr) 290px}.card{padding:22px}.private-badge{display:none}}
@media(max-width:700px){.site-header{padding:20px}.header-actions .quiet{display:none}main{margin:0;padding:28px 16px 16px}.intro{margin:0 4px 24px}.intro-copy{font-size:13px}.workspace{grid-template-columns:minmax(0,1fr);gap:16px}.card{padding:20px;border-radius:16px}.settings{grid-row:4}.tuner{min-height:425px}.grid-card,.timeline-card{grid-column:auto}.grid-legend{gap:12px;flex-wrap:wrap}.grid-legend span:last-child{margin-left:0;flex-basis:100%}.grid-scroll{margin-right:-5px}.note-grid{gap:5px;min-width:620px}.grid-detail{line-height:1.6}footer{margin:0;padding:18px 20px 26px;flex-wrap:wrap}.help{margin-top:16px}.card-heading h2{font-size:15px}.timeline-tag{display:none}.intro .eyebrow{font-size:8px}.message{max-width:340px;margin:14px auto 0}.capture-actions{gap:8px}.button{padding:12px 14px}#timeline{height:180px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.tuner{display:flex;flex-direction:column}.pitch-display{flex:1;display:flex;flex-direction:column;justify-content:center}

/* PitchGlow recording and active-note glow are original ELM interface elements. */
.brand-pitch{letter-spacing:.01em}.note-cell.active{box-shadow:inset 0 0 0 2px var(--green),0 0 12px #47856435}
.recording-card{grid-column:1/-1}.recording-actions{display:flex;align-items:center;gap:16px;margin-top:18px}
.recording-duration{font-size:20px;font-variant-numeric:tabular-nums;color:var(--green)}
.recording-active{background:#f8e9df;color:#925124}.recording-active::before{content:'● ';color:#a75524}
.recording-card>p,.recording-playback>p{font-size:11px;line-height:1.7}
.recording-playback{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.recording-playback audio{display:block;width:100%;max-width:680px}
.recording-file-actions{display:flex;align-items:center;gap:18px;margin-top:14px}
.recording-file-actions a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:700px){.settings{grid-row:5}.recording-card{grid-column:auto}.brand strong{font-size:18px}.brand-mark{width:38px;height:38px;font-size:28px}.brand{gap:9px}.header-actions{gap:8px}.header-actions .button{padding:10px 12px}}
