@font-face{font-family:Supertuner Mono;src:url(/supertuner/assets/supertuner-mono-DETgXhry.woff)format("woff");font-style:normal;font-weight:400;font-display:block}@font-face{font-family:Supertuner Music;src:url(/supertuner/assets/supertuner-music-9Tw2uBcC.woff)format("woff");font-style:normal;font-weight:400;font-display:block;unicode-range:U+266D,U+266F}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;--page:#111;--panel:#191919;--bar:#222;--hover:#2a2a2a;--text:#eee;--muted:#b4b4b4;--border:#3a3a3a;--green:#30a46c;color:var(--text);background:var(--page);font-family:Supertuner Mono,DejaVu Sans Mono,monospace}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#fcfcfc;--panel:#f9f9f9;--bar:#f0f0f0;--hover:#e8e8e8;--text:#202020;--muted:#646464;--border:#d9d9d9}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait;opacity:.55}:focus-visible{outline:2px solid var(--text);outline-offset:5px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{background:var(--page);min-height:100dvh;color:var(--text);flex-direction:column;display:flex}.app-header{z-index:21;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left));flex-shrink:0;justify-content:flex-end;gap:4px;display:flex;position:relative}.icon-button,.theme-toggle{width:44px;height:44px;color:var(--muted);touch-action:manipulation;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.icon-button:hover,.theme-toggle:hover,.settings-toggle[aria-expanded=true]{color:var(--text);background:var(--bar)}.app-header svg{width:20px;height:20px}main{width:min(calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)), 720px);min-height:0;padding:20px 0 max(40px, env(safe-area-inset-bottom));flex-direction:column;flex:1;justify-content:center;margin:0 auto;display:flex}.tuner{width:100%;min-width:0;position:relative}.microphone-control{z-index:20;background:color-mix(in srgb, var(--page) 78%, transparent);-webkit-backdrop-filter:blur(6px);place-content:center;justify-items:center;gap:24px;margin:0;padding:24px;display:grid;position:fixed;inset:0}.microphone-control.is-hidden{display:none}.microphone-control .microphone-button{width:clamp(120px,32vw,160px);height:clamp(120px,32vw,160px);box-shadow:0 0 0 12px color-mix(in srgb, var(--text) 5%, transparent)}.microphone-control .microphone-button svg{width:44px;height:44px}.microphone-button{border:1px solid var(--text);background:var(--text);width:64px;height:64px;color:var(--page);touch-action:manipulation;border-radius:50%;place-items:center;padding:0;display:grid}.microphone-button svg{width:26px;height:26px}.microphone-button:hover:not(:disabled){opacity:.8}.icon-button:active,.theme-toggle:active,.microphone-button:active:not(:disabled){transform:scale(.96)}.microphone-button.is-listening{background:var(--bar);border-color:var(--border);color:var(--text)}.tuning-display{border:1px solid var(--border);background:var(--bar);height:clamp(164px,30svh,260px);color:var(--text);border-radius:12px;position:relative;overflow:hidden}.tuning-display.is-tuned{background:var(--green);border-color:var(--green);color:#fff}.meter,.meter-plot{width:100%;height:100%;position:relative}.pitch-canvas{visibility:hidden;width:100%;height:100%;display:block}.pitch-canvas.ready{visibility:visible}.meter-fallback{position:absolute;inset:0 18px}.fallback-range{opacity:.08;background:currentColor;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.fallback-tick{opacity:.2;background:currentColor;width:2px;height:32px;position:absolute;bottom:10px;transform:translate(-50%)}.fallback-tick.is-center{height:44px}.fallback-needle{will-change:transform;background:currentColor;width:3px;position:absolute;top:12px;bottom:12px;transform:translate(-50%)}.deviation-scale{height:22px;color:var(--muted);pointer-events:none;font-variant-numeric:tabular-nums;margin:10px 19px 0;font-size:11px;position:relative}.deviation-label{opacity:.65;position:absolute;transform:translate(-50%)}.pitch-readout{height:120px;color:var(--text);pointer-events:none;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;margin-bottom:24px;display:flex}.pitch-readout:not(.has-pitch){color:var(--muted)}.pitch-readout.is-held{opacity:.35}.scientific-note{font-variant-ligatures:none;grid-template-columns:1ch .5ch .7ch;align-items:baseline;font-size:clamp(72px,18vw,96px);line-height:1;display:grid}.note-name,.accidental,.octave{text-align:left}.note-name{font-size:1em;font-weight:400}.accidental{font-family:Supertuner Music,Supertuner Mono,monospace;font-size:.9em}.octave{font-size:.5em}.pitch-readout:not(.has-pitch) .note-name{text-align:center;grid-column:1/-1}.pitch-readout:not(.has-pitch) .accidental,.pitch-readout:not(.has-pitch) .octave{display:none}.tuner-settings{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:16px;grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;margin-top:20px;padding:20px;font-size:13px;display:grid}.input-controls{gap:16px;min-width:0;display:grid}.tolerance-control{gap:4px;display:grid}.tolerance-control>span{justify-content:space-between;align-items:center;gap:10px;display:flex}.tolerance-control strong{color:var(--text);white-space:nowrap;font-weight:500}.tolerance-control small{color:var(--muted);font-size:11px;font-weight:400}input[type=range]{width:100%;height:44px;accent-color:var(--text);cursor:pointer;margin:0}.reference-control{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;display:flex}.session-settings{grid-column:1/-1}.stop-session{border:1px solid var(--border);width:100%;min-height:44px;color:var(--muted);touch-action:manipulation;background:0 0;border-radius:8px;padding:10px 16px;font-size:13px}.stop-session:hover{background:var(--bar);color:var(--text)}.reference-input{align-items:baseline;gap:7px;display:flex}.reference-input input{border:1px solid var(--border);width:64px;min-height:44px;color:var(--text);background:var(--page);text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;padding:4px;font-size:16px}.error-message{max-width:360px;color:var(--muted);text-align:center;margin:0 auto;font-size:12px;line-height:1.6}@media (width>=640px){.app-header{padding:max(24px, env(safe-area-inset-top)) max(32px, env(safe-area-inset-right)) 16px max(32px, env(safe-area-inset-left));gap:8px}main{width:min(100% - 64px,720px);padding-top:24px;padding-bottom:max(80px, env(safe-area-inset-bottom))}.microphone-button{width:68px;height:68px}.tuning-display{height:164px}.tuner-settings{grid-template-columns:1fr 1fr;gap:32px;padding:24px}.reference-control{flex-direction:column;align-items:flex-end}.stop-session{width:auto;min-width:160px}.session-settings{text-align:center}}@media (height<=500px){.app-header{padding:max(8px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 4px max(16px, env(safe-area-inset-left))}main{padding-top:12px;padding-bottom:max(24px, env(safe-area-inset-bottom))}.microphone-button{width:48px;height:48px}.pitch-readout{height:72px;margin-bottom:12px}.scientific-note{font-size:56px}.tuning-display{height:96px}}
