:root{color:#1c1e21;background:#fff;font-family:Optimistic Display,Optimistic Text,Montserrat,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{font:inherit}p,h1,h2{margin:0}.pitch-app{min-height:100vh;background:radial-gradient(circle at 88% 10%,rgba(0,145,255,.34),transparent 25rem),radial-gradient(circle at 12% 22%,rgba(0,100,224,.18),transparent 22rem),linear-gradient(180deg,#f4f9ff,#e9f3ff 46%,#fff);color:#1c1e21;padding:20px 14px max(26px,env(safe-area-inset-bottom))}.recorder-hero,.pitch-graph,.scale-control,.current-pitch,.recorder-controls,.score-editor,.score-playback,.score-record-controls,.target-composer,.target-score,.accuracy-report,.help-panel,.notes-timeline,.segment-list{width:min(100%,980px);margin:0 auto 14px}.recorder-hero{position:relative;padding:8px 0 14px}.hero-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}.recorder-hero h1{color:#003b82;font-family:Optimistic Display,Montserrat,Helvetica,Arial,sans-serif;font-size:clamp(2.35rem,10vw,4.4rem);font-weight:500;line-height:1.08;letter-spacing:-.04em}.hero-copy{max-width:680px;margin-top:12px;color:#284e7a;line-height:1.5;letter-spacing:-.01em}.section-kicker{margin:0;color:#0064e0;font-size:.75rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.pitch-graph{display:grid;grid-template-columns:58px minmax(0,1fr);min-height:min(56vh,480px);border:1px solid rgba(0,100,224,.24);border-radius:32px;background:#ffffffeb;overflow:hidden;box-shadow:0 20px 50px #0064e024}.pitch-axis{position:relative;border-right:1px solid rgba(0,100,224,.22);background:#eaf4ff}.pitch-axis span{position:absolute;left:9px;color:#003b82;font-size:.58rem;font-weight:800;line-height:1;transform:translateY(-50%)}.pitch-axis span.sharp-note{color:#77a7dc;font-weight:500}.pitch-canvas{height:100%;min-width:100%}.pitch-scroll{min-width:0;overflow-x:auto;overflow-y:hidden}.pitch-scroll::-webkit-scrollbar,.notes-timeline-scroll::-webkit-scrollbar{height:8px}.pitch-scroll::-webkit-scrollbar-thumb,.notes-timeline-scroll::-webkit-scrollbar-thumb{border-radius:100px;background:#0064e047}.pitch-grid-line{stroke:#0064e052;stroke-width:.52}.pitch-grid-line.sharp-note{stroke:#0091ff1f;stroke-width:.2}.pitch-trace{fill:none;stroke:#0064e0;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;vector-effect:non-scaling-stroke}.playback-cursor{stroke:#0457cb;stroke-width:1.25;vector-effect:non-scaling-stroke}.scale-control{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(0,100,224,.2);border-radius:24px;background:#ffffffdb;padding:12px}.scale-control>span{color:#003b82;font-size:.88rem;font-weight:700;white-space:nowrap}.scale-options{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr));gap:6px;flex:1;max-width:430px}.scale-options button{display:grid;gap:2px;min-height:48px;border:1px solid rgba(0,100,224,.22);border-radius:16px;background:#fff;color:#0457cb;padding:7px 8px;font-size:.78rem;font-weight:700}.scale-value,.scale-description{display:block;line-height:1.05;white-space:nowrap}.scale-description{color:currentColor;font-size:.67rem;font-weight:650;opacity:.72}.scale-options button[aria-pressed=true]{border-color:#0064e0;background:#0064e0;color:#fff}.current-pitch{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(0,100,224,.22);border-radius:18px;background:#ffffffe6;padding:10px 14px;box-shadow:0 8px 20px #0064e014}.current-pitch strong{color:#003b82;font-size:1.42rem;font-weight:700;letter-spacing:-.04em}.current-pitch span{color:#0457cb;font-size:.86rem;font-weight:700;white-space:nowrap}.recorder-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.target-composer,.score-editor{border:1px solid rgba(0,100,224,.2);border-radius:24px;background:#ffffffe6;padding:14px}.score-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.score-editor h2{color:#003b82;font-size:1rem;font-weight:700}.score-editor p,.score-editor-header span{margin-top:4px;color:#4f7ead;font-size:.82rem;font-weight:700}.score-editor-controls{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}.score-editor-actions{display:grid;grid-template-columns:1fr 1fr 48px;gap:8px}.score-editor-actions button[aria-pressed=true]{border-color:#0064e0;background:#0064e0;color:#fff}.score-staff-input-lane{position:relative;display:grid;min-height:138px;margin-top:16px;border:1px solid rgba(0,100,224,.18);border-radius:18px;background:linear-gradient(180deg,#0064e00a,#ffffffeb);cursor:crosshair;overflow:hidden}.score-staff-input-lane span{position:absolute;left:18px;right:18px;height:2px;background:#003b829e}.score-staff-input-lane span:nth-child(1){top:34px}.score-staff-input-lane span:nth-child(2){top:52px}.score-staff-input-lane span:nth-child(3){top:70px}.score-staff-input-lane span:nth-child(4){top:88px}.score-staff-input-lane span:nth-child(5){top:106px}.score-staff-input-lane p{align-self:end;margin:0;padding:0 14px 12px;color:#4f7ead;font-size:.78rem;font-weight:650}.score-staff-event{position:absolute;z-index:2;width:50px;min-height:30px;border:1px solid #0064e0;border-radius:10px;background:#fff;box-shadow:0 8px 20px #0064e02e;color:#003b82;cursor:grab;font-size:.72rem;transform:translate(-50%,-50%);touch-action:none}.score-staff-event.rest{border-style:dashed;background:#eaf4ff}.score-staff-event:active{cursor:grabbing}.score-editor button,.score-editor select{min-height:40px;border:1px solid rgba(0,100,224,.22);border-radius:14px;background:#fff;color:#0457cb;padding:0 12px;font-weight:700}.score-note-value{display:grid;min-height:72px;gap:2px;align-content:center;border:1px solid rgba(0,100,224,.22);border-radius:14px;background:#fff;color:#0457cb;padding:8px 6px;text-align:center}.score-note-value input{position:absolute;opacity:0;pointer-events:none}.score-note-value:has(input:checked){border-color:#0064e0;background:#0064e0;color:#fff}.target-composer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.target-composer h2{color:#003b82;font-size:1rem;font-weight:700}.target-composer p{margin-top:4px;color:#4f7ead;font-size:.82rem}.target-composer button,.target-controls select,.target-controls input{min-height:40px;border:1px solid rgba(0,100,224,.22);border-radius:14px;background:#fff;color:#0457cb;padding:0 12px;font-weight:700}.target-composer button:disabled{opacity:.45}.target-controls{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}.target-controls label,.note-value-picker legend{display:grid;gap:5px;min-width:0;color:#003b82;font-size:.72rem;font-weight:800;text-transform:uppercase}.tempo-control{grid-template-columns:minmax(0,1fr) auto;align-items:end}.tempo-control span{grid-column:1 / -1}.tempo-control input{width:100%}.tempo-control small{color:#4f7ead;font-size:.72rem;font-weight:800;line-height:40px}.note-value-picker{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));gap:8px;margin:0;border:0;padding:0}.note-value-picker legend{grid-column:1 / -1;margin-bottom:0;padding:0}.note-value-picker button{display:grid;min-height:72px;gap:2px;align-content:center;padding:8px 6px;border-radius:14px}.note-value-picker button[aria-pressed=true]{border-color:#0064e0;background:#0064e0;color:#fff}.note-symbol{font-family:Times New Roman,Georgia,serif;font-size:1.45rem;font-weight:700;line-height:1}.note-label{font-size:.68rem;font-weight:800;line-height:1.1;text-transform:none}.note-beats{color:currentColor;font-size:.62rem;font-weight:700;opacity:.75}.triplet-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.target-note-control{max-width:360px}.add-target-button{justify-self:stretch}.target-score{border:1px solid rgba(0,100,224,.2);border-radius:24px;background:#ffffffeb;padding:16px;overflow-x:auto}.target-score h2{color:#003b82;font-size:1rem;font-weight:700}.target-score-surface{position:relative;min-width:760px;margin-top:10px}.target-score-cursor{position:absolute;top:18px;bottom:14px;z-index:4;width:3px;border-radius:100px;background:#e41e3f;box-shadow:0 0 0 4px #e41e3f24;pointer-events:none}.score-playback{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.score-playback button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;gap:8px;border:1px solid rgba(0,100,224,.22);border-radius:16px;background:#fff;color:#0457cb;font-weight:750}.score-playback button:disabled{opacity:.45}.score-record-controls{display:grid}.score-record-controls button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;gap:8px;border:1px solid #0064e0;border-radius:16px;background:#0064e0;color:#fff;font-weight:800}.score-record-controls button[aria-label="End score take"]{border-color:#e41e3f;background:#e41e3f}.score-record-controls button:disabled{opacity:.45}.accuracy-report{border:1px solid rgba(0,100,224,.2);border-radius:24px;background:#ffffffeb;padding:18px}.accuracy-report-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.accuracy-report h2{margin:2px 0 0;color:#003b82;font-size:1rem;font-weight:700}.accuracy-report-header>strong{color:#0064e0;font-size:2rem;line-height:1}.accuracy-report ul{display:grid;gap:0;margin:14px 0 0;padding:0;list-style:none}.accuracy-report li{display:grid;grid-template-columns:minmax(58px,1fr) auto auto minmax(74px,auto);gap:10px;min-height:44px;align-items:center;border-top:1px solid rgba(0,100,224,.14);color:#284e7a;font-size:.82rem}.accuracy-report li strong{display:block;color:#003b82}.accuracy-report li small{color:#4f7ead}.accuracy-pill{min-width:54px;border-radius:100px;padding:4px 8px;text-align:center;color:#fff;font-size:.72rem;font-weight:800;text-transform:uppercase}.accuracy-pill.good{background:#0064e0}.accuracy-pill.close{background:#4f7ead}.accuracy-pill.missed{background:#e41e3f}.control-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;gap:8px;border:2px solid rgba(0,100,224,.2);border-radius:100px;background:#fff;color:#0457cb;font-size:.88rem;font-weight:700;letter-spacing:-.14px;transition:transform .12s ease,background-color .12s ease}.control-button.primary{border-color:#0064e0;background:#0064e0;color:#fff}.control-button.danger{border-color:#e41e3f;background:#e41e3f;color:#fff}.control-button:disabled{opacity:.45}.control-button:not(:disabled):active{transform:translateY(1px)}.help-panel{border:1px solid rgba(0,100,224,.2);border-radius:24px;background:#ffffffe0}.recorder-hero .help-panel{position:relative;z-index:3;flex:0 0 auto;width:auto;margin:0;border-radius:999px;box-shadow:none}.help-panel summary{min-height:28px;padding:6px 11px;color:#003b82;cursor:pointer;font-size:.72rem;font-weight:750;list-style-position:inside}.help-content{display:grid;gap:10px;position:absolute;top:calc(100% + 8px);right:0;width:min(360px,calc(100vw - 28px));border-top:1px solid rgba(0,100,224,.16);border:1px solid rgba(0,100,224,.2);border-radius:18px;background:#fffffffa;box-shadow:0 18px 48px #003b821f;padding:16px}.help-content h2{color:#003b82;font-size:1rem;font-weight:700}.help-content p{color:#284e7a;line-height:1.55}.help-content strong{color:#003b82}.notes-timeline{border:1px solid rgba(0,100,224,.2);border-radius:24px;background:#ffffffe6;padding:18px}.notes-timeline h2{color:#003b82;font-size:1rem;font-weight:700}.notes-timeline-scroll{margin-top:12px;overflow-x:auto}.notes-timeline-lane{position:relative;min-width:100%;height:170px;border:1px solid rgba(0,100,224,.18);border-radius:18px;background:repeating-linear-gradient(to bottom,rgba(0,100,224,.1) 0,rgba(0,100,224,.1) 1px,transparent 1px,transparent 14px),#f8fbff}.recorded-sound-block{position:absolute;display:inline-flex;align-items:center;justify-content:center;min-width:2px;height:22px;border-radius:4px;background:#0064e0;color:#fff;font-size:.78rem;font-weight:700;transform:translateY(-50%)}.target-note-block{position:absolute;display:inline-flex;align-items:center;justify-content:center;min-width:2px;height:22px;border:2px solid #0064e0;border-radius:4px;background:#0064e01f;color:#003b82;font-size:.78rem;font-weight:800;transform:translateY(-50%)}.recorded-playback-cursor{position:absolute;top:0;bottom:0;z-index:2;width:2px;background:#0457cb;transform:translate(-1px)}.segment-list{border:1px solid rgba(0,100,224,.2);border-radius:24px;background:#ffffffe6;padding:18px}.segment-list h2{color:#003b82;font-size:1rem;font-weight:650}.segment-list ul{display:grid;gap:1px;margin:0;padding:0;list-style:none}.segment-header{display:grid;grid-template-columns:minmax(44px,.7fr) auto minmax(92px,1.1fr) minmax(96px,1.4fr);gap:10px;margin-top:12px;padding-bottom:6px;color:#4f7ead;font-size:.68rem;font-weight:800;text-transform:uppercase}.segment-list li{display:grid;grid-template-columns:minmax(44px,.7fr) auto minmax(92px,1.1fr) minmax(96px,1.4fr);gap:10px;min-height:42px;align-items:center;border-top:1px solid rgba(0,100,224,.14);color:#284e7a}.segment-list strong{color:#003b82}.duration-meter{display:block;width:100%;height:12px;border-radius:100px;background:#0064e01f;overflow:hidden}.duration-bar{display:block;height:100%;border-radius:inherit;background:#0064e0}.empty-report{margin-top:10px;color:#4f7ead;line-height:1.45}.error-banner{width:min(100%,980px);margin:0 auto 14px;border:1px solid #f0284a;border-radius:16px;background:#fff5f7;color:#e41e3f;padding:12px 14px;font-weight:650}@media(min-width:760px){.pitch-app{padding:22px 32px 42px}.pitch-graph{min-height:560px}.recorder-hero{padding:32px 0 18px}}
