.topbar[data-v-860c3937]{min-height:152px;position:relative;z-index:3}.controls[data-v-860c3937]{align-items:flex-end;flex-direction:column;gap:0;position:absolute;right:calc(var(--tuner-padding)*-1);top:calc(var(--tuner-padding)*-1)}.controls[data-v-860c3937],.controls-row[data-v-860c3937]{display:flex;max-width:50vw;width:-moz-max-content;width:max-content}.controls-row[data-v-860c3937]{align-items:center;justify-content:flex-end}.eyebrow[data-v-860c3937]{align-items:center;color:#5d6964;display:flex;flex-wrap:wrap;font-size:.78rem;font-weight:700;gap:6px;margin:0 0 8px;text-transform:uppercase}.eyebrow[data-v-860c3937],h1[data-v-860c3937]{letter-spacing:0}h1[data-v-860c3937]{color:#17201d;font-size:clamp(2rem,6vw,4.4rem);line-height:.95;margin:0}.language-switch[data-v-860c3937]{background:#17201d14;border:0;border-bottom:1px solid rgba(23,32,29,.12);border-left:1px solid rgba(23,32,29,.12);border-radius:0 8px;box-shadow:inset 0 1px #ffffff61,0 8px 20px #1f292514;display:inline-grid;flex:1 1 96px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;min-height:42px;min-height:48px;padding:4px;width:96px}.language-switch button[data-v-860c3937]{background:transparent;border:0;border-radius:6px;color:#52615c;cursor:pointer;font-size:.82rem;font-weight:850}.language-switch button.active[data-v-860c3937]{background:#fffaf0;box-shadow:0 4px 14px #1f292521;color:#17201d}.listen-button[data-v-860c3937]{background:#d74f2a;border:0;border-radius:0;color:#fffaf0;cursor:pointer;flex:1 1 104px;font-weight:800;min-height:48px;min-width:0;transition:transform .16s ease,background .16s ease}.listen-button[data-v-860c3937]:hover{background:#b83e20;transform:translateY(-1px)}.sound-menu[data-v-860c3937]{display:grid;justify-items:end;position:relative}.sound-button[data-v-860c3937]{background:#fffaf0f0;border:0;border-radius:0 0 0 8px;box-shadow:inset 0 1px #ffffff94,0 8px 18px #1f29251a;color:#17201d;cursor:pointer;display:grid;font-size:1rem;height:32px;line-height:1;place-items:center;width:34px}.sound-button[data-v-860c3937]:focus-visible,.sound-button[data-v-860c3937]:hover{background:#277a73;color:#fffaf0;outline:0}.sound-button.loading[data-v-860c3937]{background:#277a73;color:#fffaf0}.sound-button.loading span[data-v-860c3937]{animation:sound-spin-860c3937 .9s linear infinite}.sound-loading[data-v-860c3937]{background:#fffaf0f5;border-radius:8px;box-shadow:0 8px 18px #1f29251a;color:#277a73;font-size:.68rem;font-weight:850;line-height:1;max-width:132px;padding:5px 7px;position:absolute;right:40px;top:5px;width:-moz-max-content;width:max-content}.sound-options[data-v-860c3937]{background:#fffcf4fa;border:1px solid rgba(23,32,29,.12);border-radius:8px 0 8px 8px;box-shadow:0 14px 34px #1f29252e;display:grid;min-width:132px;padding:5px;position:absolute;right:0;top:36px;z-index:20}.sound-options p[data-v-860c3937]{color:#5d6964;font-size:.72rem;font-weight:700;line-height:1.3;margin:2px 4px 6px;max-width:190px}.sound-options button[data-v-860c3937]{background:transparent;border:0;border-radius:6px;color:#52615c;cursor:pointer;font-size:.78rem;font-weight:850;min-height:34px;text-align:left}.sound-options button[data-v-860c3937]:disabled{cursor:wait;opacity:.56}.sound-options button.active[data-v-860c3937],.sound-options button[data-v-860c3937]:focus-visible,.sound-options button[data-v-860c3937]:hover{background:#fff2dc;color:#17201d;outline:0}@keyframes sound-spin-860c3937{to{transform:rotate(1turn)}}@media(max-width:560px){.topbar[data-v-860c3937]{min-height:118px}h1[data-v-860c3937]{font-size:clamp(2.1rem,13vw,3.2rem);margin-top:28px;padding:0 8px;text-align:center}.controls[data-v-860c3937]{align-items:stretch;bottom:auto;justify-content:flex-end;right:calc(var(--tuner-padding)*-1);top:calc(var(--tuner-padding)*-1)}.controls[data-v-860c3937],.controls-row[data-v-860c3937]{max-width:50vw;width:-moz-max-content;width:max-content}.language-switch[data-v-860c3937]{grid-template-columns:repeat(2,1fr);width:50vw}}.volume[data-v-b261542e]{display:grid;gap:8px;margin:18px auto 0;width:min(50%,420px)}.volume-label[data-v-b261542e]{align-items:center;color:#5d6964;display:flex;font-size:.74rem;font-weight:800;gap:16px;justify-content:space-between}.volume-steps[data-v-b261542e]{align-items:end;display:grid;gap:3px;grid-template-columns:repeat(12,1fr);height:30px}.volume-steps i[data-v-b261542e]{background:#17201d1f;border-radius:3px 3px 1px 1px;display:block;height:var(--step-height);transition:background 90ms linear,opacity 90ms linear}.volume-steps i.active.low[data-v-b261542e]{background:#8fb8c7}.volume-steps i.active.mid[data-v-b261542e]{background:#d8b442}.volume-steps i.active.high[data-v-b261542e]{background:#277a73}@media(max-width:560px){.volume[data-v-b261542e]{gap:5px;margin-top:8px;width:min(76%,320px)}.volume-steps[data-v-b261542e]{height:22px}}.readout[data-v-d9bfda7e]{align-items:baseline;color:#162c39;display:flex;justify-content:center;margin:18px 0 10px;min-height:160px}.note[data-v-d9bfda7e]{font-size:clamp(5rem,20vw,10rem);font-weight:900;letter-spacing:0;line-height:.82}.octave[data-v-d9bfda7e]{color:#277a73;font-size:clamp(2rem,6vw,3.8rem);font-weight:850;min-width:38px}.frequency-row[data-v-d9bfda7e]{align-items:center;color:#3d4c47;display:flex;font-size:clamp(1rem,3vw,1.25rem);font-weight:750;gap:16px;justify-content:space-between}@media(max-width:560px){.readout[data-v-d9bfda7e]{margin:8px 0 6px;min-height:90px}.note[data-v-d9bfda7e]{font-size:clamp(4.2rem,24vw,6rem)}.octave[data-v-d9bfda7e]{font-size:clamp(1.6rem,9vw,2.4rem);min-width:28px}.frequency-row[data-v-d9bfda7e]{font-size:.92rem;gap:10px;padding:0 8px}}.tuning-meter[data-v-ea6f6de3]{align-items:center;color:#63706b;display:flex;font-size:.82rem;font-weight:700;gap:16px;justify-content:space-between;margin:18px 0}.rail[data-v-ea6f6de3]{background:linear-gradient(90deg,#2b6f9b,#9fc9bd 45%,#277a73,#efb45d 55%,#d74f2a);height:48px;overflow:hidden;position:relative;width:min(100%,560px)}.rail[data-v-ea6f6de3],.rail[data-v-ea6f6de3]:after{border-radius:999px}.rail[data-v-ea6f6de3]:after{background:#fffcf4c2;content:"";inset:13px;position:absolute}.center-line[data-v-ea6f6de3],.needle[data-v-ea6f6de3]{border-radius:8px;height:32px;position:absolute;top:8px;width:3px;z-index:1}.center-line[data-v-ea6f6de3]{background:#17201d47;left:50%}.needle[data-v-ea6f6de3]{background:#17201d;left:calc(50% + var(--needle-offset, 0%));transform:translate(-50%);transition:left .18s cubic-bezier(.2,.8,.2,1)}@media(max-width:560px){.tuning-meter[data-v-ea6f6de3]{font-size:.72rem;gap:10px;margin:12px 6px}.rail[data-v-ea6f6de3]{height:34px}.rail[data-v-ea6f6de3]:after{inset:9px}.center-line[data-v-ea6f6de3],.needle[data-v-ea6f6de3]{height:22px;top:6px}}.keyboard-wrap[data-v-46fc2109]{margin:4px 0 24px;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-color:rgba(23,32,29,.28) transparent;scrollbar-width:thin;width:100%}.keyboard[data-v-46fc2109]{--white-key-width:34px;--black-key-width:22px;display:block;min-width:100%;position:relative}.keyboard[data-v-46fc2109],.white-keys[data-v-46fc2109]{height:145px;width:-moz-max-content;width:max-content}.white-keys[data-v-46fc2109]{align-items:stretch;display:flex}.black-keys[data-v-46fc2109]{height:90px;inset:0 auto auto 0;position:absolute}.piano-key[data-v-46fc2109]{align-items:flex-end;border:0;cursor:pointer;display:flex;justify-content:center;letter-spacing:0;position:relative;transition:background .5s ease,box-shadow .5s ease,color .5s ease,transform .5s ease}.piano-key[data-v-46fc2109]:active{transform:translateY(1px)}.piano-key.white[data-v-46fc2109]{background:#fffdf8;border:1px solid rgba(23,32,29,.18);border-left-width:0;border-radius:0 0 6px 6px;box-shadow:inset 0 -10px 16px #17201d0d;color:#52615c;height:145px;width:var(--white-key-width);z-index:1}.piano-key.white[data-v-46fc2109]:first-child{border-left-width:1px}.piano-key.black[data-v-46fc2109]{background:#17201d;border-radius:0 0 5px 5px;box-shadow:0 7px 14px #17201d3d;color:#fffaf0b8;height:90px;left:calc(var(--white-key-width)*var(--after-white-count) - var(--black-key-width)/2);position:absolute;width:var(--black-key-width);z-index:2}.piano-key.detected[data-v-46fc2109]{background:#277a73;box-shadow:0 0 0 3px #277a7338,0 10px 28px #277a734d}.piano-key.detected[data-v-46fc2109],.piano-key.pressed[data-v-46fc2109]{color:#fffaf0;transform:translateY(-2px)}.piano-key.pressed[data-v-46fc2109]{background:#d74f2a;box-shadow:0 0 0 3px #d74f2a38,0 10px 28px #d74f2a52}.piano-key.combined[data-v-46fc2109]{background:#8b6fc8;box-shadow:0 0 0 3px #8b6fc83d,0 10px 30px #8b6fc857;color:#fffaf0;transform:translateY(-2px)}.piano-key.selected[data-v-46fc2109]:after{background:#d74f2a;border-radius:50%;box-shadow:0 2px 6px #9f2f1a52;color:#fffaf0;content:"x";display:grid;font-size:13px;font-weight:900;height:14px;left:50%;line-height:1;place-items:center;pointer-events:none;position:absolute;top:8px;transform:translate(-50%);width:14px;z-index:3}.piano-key.black.selected[data-v-46fc2109]:after{font-size:11px;height:12px;top:6px;width:12px}.piano-key span[data-v-46fc2109]{display:block;font-size:.68rem;font-weight:850;line-height:1;padding-bottom:10px;pointer-events:none}.piano-key.black span[data-v-46fc2109]{font-size:.58rem;padding-bottom:8px}@media(max-width:560px){.keyboard-wrap[data-v-46fc2109]{margin:0 0 12px}.keyboard[data-v-46fc2109]{--white-key-width:32px;--black-key-width:21px;min-width:1120px}.keyboard[data-v-46fc2109],.white-keys[data-v-46fc2109]{height:136px}.black-keys[data-v-46fc2109]{height:84px}.piano-key.white[data-v-46fc2109]{height:136px}.piano-key.black[data-v-46fc2109]{height:84px}}.keyboard-control-pad[data-v-b22aa113]{display:grid;gap:8px;margin:-8px 0 22px;position:relative;z-index:3}.control-buttons[data-v-b22aa113]{align-items:center;display:grid;gap:8px;grid-template-columns:58px minmax(180px,1fr) 58px}.control-key[data-v-b22aa113]{background:#fffaf0e0;border:1px solid rgba(23,32,29,.12);border-radius:8px;box-shadow:inset 0 1px #ffffff9e,0 8px 20px #1f292514;color:#17201d;cursor:pointer;font-weight:900;min-height:50px;min-width:0;transition:transform .14s ease,background .14s ease,box-shadow .14s ease}.control-key[data-v-b22aa113]:focus-visible,.control-key[data-v-b22aa113]:hover{background:#fffaf0;box-shadow:inset 0 1px #ffffffb8,0 12px 26px #1f29251f;outline:0;transform:translateY(-1px)}.control-key[data-v-b22aa113]:active{transform:translateY(1px)}.arrow-key[data-v-b22aa113]{font-size:1.35rem}.space-key[data-v-b22aa113]{align-items:center;background:#277a73;color:#fffaf0;display:flex;gap:12px;justify-content:center}.space-key[data-v-b22aa113]:focus-visible,.space-key[data-v-b22aa113]:hover{background:#20655f}.space-label[data-v-b22aa113]{font-size:.72rem;text-transform:uppercase}.space-key strong[data-v-b22aa113]{font-size:1.12rem}@media(max-width:560px){.keyboard-control-pad[data-v-b22aa113]{-webkit-backdrop-filter:blur(12px) saturate(1.08);backdrop-filter:blur(12px) saturate(1.08);background:#fffcf4e6;border-radius:8px;bottom:5px;box-shadow:0 14px 36px #1f292529;left:5px;margin:0;padding:10px;position:fixed;right:5px;z-index:35}.control-buttons[data-v-b22aa113]{gap:8px;grid-template-columns:56px minmax(0,1fr) 56px}.control-key[data-v-b22aa113]{min-height:60px}}.start-overlay[data-v-77aeb464]{align-items:center;background:linear-gradient(135deg,#fffcf457,#e8f2ec33),#fffcf429;border:0;border-radius:inherit;color:#17201d;display:flex;flex-direction:column;gap:14px;inset:0;justify-content:center;pointer-events:auto;position:absolute;text-align:center;z-index:60}.start-overlay[data-v-77aeb464]:before{background:linear-gradient(145deg,#ffffff47,#ffffff0f),#fffcf414;border-radius:8px;content:"";inset:18px;pointer-events:none;position:absolute}.overlay-action[data-v-77aeb464]:focus-visible,.overlay-action[data-v-77aeb464]:hover{background:#b83e20;border-color:#b83e20;color:#fffaf0;outline:0;transform:translateY(-2px)}.overlay-hint[data-v-77aeb464],.overlay-kicker[data-v-77aeb464]{background:#fffcf4b8;border-radius:8px;box-shadow:0 8px 24px #1f292514;color:#52615c;font-weight:800;padding:5px 10px;position:relative;z-index:1}.overlay-kicker[data-v-77aeb464]{font-size:.85rem;text-transform:uppercase}.overlay-action[data-v-77aeb464]{-webkit-backdrop-filter:blur(8px) saturate(1.1);backdrop-filter:blur(8px) saturate(1.1);background:#d74f2a;border:1px solid #d74f2a;border-radius:8px;box-shadow:0 18px 60px #d74f2a57,inset 0 1px #ffffff38;color:#fffaf0;cursor:pointer;font-size:clamp(2.2rem,8vw,5.8rem);font-weight:900;line-height:1;min-width:min(74vw,320px);padding:22px 42px;position:relative;text-transform:uppercase;transition:transform .16s ease,color .16s ease,background .16s ease;z-index:1}.overlay-hint[data-v-77aeb464]{font-size:.96rem;max-width:min(70vw,380px)}:root{background:#f4f1e8;color:#17201d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;overflow-x:hidden}button{font:inherit;-moz-user-select:none;user-select:none;-webkit-user-select:none}.page-shell{background:linear-gradient(135deg,#f4f1e8eb,#dee8e2e0),url(https://images.unsplash.com/photo-1511379938547-c1f69419868d?auto=format&fit=crop&w=1800&q=80) 50% /cover;display:grid;min-height:100vh;padding:24px;place-items:center;position:relative}.tuner{--tuner-padding:clamp(22px,5vw,42px);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffcf4eb;border:1px solid rgba(23,32,29,.14);border-radius:8px;box-shadow:0 24px 80px #1f29252e;max-width:960px;min-width:0;overflow:hidden;padding:var(--tuner-padding);position:relative;width:100%}.app-footer{bottom:6px;color:#52615c7a;display:flex;font-size:8px;font-weight:700;gap:6px;line-height:1;position:fixed;right:8px;z-index:40}.app-footer a{color:inherit;text-decoration:none}.app-footer a:hover{color:#17201db8;text-decoration:underline}.tuner.inactive .piano-key.black{background:#17201d8f;box-shadow:0 4px 12px #17201d1a;color:#fffaf047}.tuner.inactive .piano-key.white{background:#fffdf8a8;color:#52615c6b}.tuner.inactive .topbar{z-index:auto}.tuner.inactive .topbar>:first-child{position:relative;z-index:70}.tuner-content{position:relative}.error{color:#9f2f1a;font-weight:700;margin:18px 0 0}@media(max-width:560px){.page-shell{padding:5px}.tuner{--tuner-padding:0px;border-left:0;border-radius:0;border-right:0;min-height:100vh}.tuner-content{padding-bottom:120px}.app-footer{bottom:10px}}
