.topbar[data-v-204a7ad6]{min-height:152px;position:relative;z-index:3}.topbar.listening[data-v-204a7ad6]{min-height:0}.brand-header[data-v-204a7ad6]{position:relative;z-index:70}.controls[data-v-204a7ad6]{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-204a7ad6],.controls-row[data-v-204a7ad6]{display:flex;width:-moz-max-content;width:max-content}.controls-row[data-v-204a7ad6]{align-items:center;justify-content:flex-end}.eyebrow[data-v-204a7ad6]{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-204a7ad6],h1[data-v-204a7ad6]{letter-spacing:0}h1[data-v-204a7ad6]{color:#17201d;font-size:clamp(2rem,6vw,4.4rem);line-height:.95;margin:0}.language-switch[data-v-204a7ad6],.notation-switch[data-v-204a7ad6]{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;box-shadow:inset 0 1px #ffffff61,0 8px 20px #1f292514;display:inline-grid;flex:0 0 96px;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;min-height:42px;min-height:48px;padding:4px;width:96px}.notation-switch[data-v-204a7ad6]{border-radius:0}.language-switch button[data-v-204a7ad6],.notation-switch button[data-v-204a7ad6]{background:transparent;border:0;border-radius:6px;color:#52615c;cursor:pointer;font-size:.82rem;font-weight:850}.language-switch button.active[data-v-204a7ad6],.notation-switch button.active[data-v-204a7ad6]{background:#fffaf0;box-shadow:0 4px 14px #1f292521;color:#17201d}.listen-button[data-v-204a7ad6]{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-204a7ad6]:hover{background:#b83e20;transform:translateY(-1px)}.info-menu[data-v-204a7ad6],.sound-menu[data-v-204a7ad6]{display:grid;justify-items:end;position:relative}.icon-button[data-v-204a7ad6]{background:#fffaf0f0;border:0;border-radius:0;box-shadow:inset 0 1px #ffffff94,0 8px 18px #1f29251a;color:#17201d;cursor:pointer;display:grid;font-size:1rem;height:48px;line-height:1;place-items:center;width:34px}.info-menu .icon-button[data-v-204a7ad6]{border-radius:0 0 0 8px;font-style:italic;font-weight:900}.sound-menu .icon-button[data-v-204a7ad6]{border-radius:0 0 0 8px;height:32px;width:34px}.icon-button[data-v-204a7ad6]:focus-visible,.icon-button[data-v-204a7ad6]:hover{background:#277a73;color:#fffaf0;outline:0}.icon-button.loading[data-v-204a7ad6]{background:#277a73;color:#fffaf0}.icon-button.loading span[data-v-204a7ad6]{animation:sound-spin-204a7ad6 .9s linear infinite}.sound-loading[data-v-204a7ad6]{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}.menu-popover[data-v-204a7ad6]{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}.info-popover[data-v-204a7ad6]{color:#52615c;font-size:.76rem;font-weight:800;gap:6px;line-height:1.2;min-width:168px;top:52px}.info-popover strong[data-v-204a7ad6]{color:#17201d;font-size:.9rem}.info-popover a[data-v-204a7ad6]{color:#277a73;text-decoration:none}.info-popover a[data-v-204a7ad6]:hover{text-decoration:underline}.sound-options p[data-v-204a7ad6]{color:#5d6964;font-size:.72rem;font-weight:700;line-height:1.3;margin:2px 4px 6px;max-width:190px}.sound-options button[data-v-204a7ad6]{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-204a7ad6]:disabled{cursor:wait;opacity:.56}.sound-options button.active[data-v-204a7ad6],.sound-options button[data-v-204a7ad6]:focus-visible,.sound-options button[data-v-204a7ad6]:hover{background:#fff2dc;color:#17201d;outline:0}@keyframes sound-spin-204a7ad6{to{transform:rotate(1turn)}}@media(max-width:560px){.topbar[data-v-204a7ad6]{min-height:118px}.topbar.listening[data-v-204a7ad6]{min-height:0}h1[data-v-204a7ad6]{font-size:clamp(2.1rem,13vw,3.2rem);margin-top:12px;padding:0 8px;text-align:center}.controls[data-v-204a7ad6]{align-items:stretch;bottom:auto;justify-content:flex-end;right:calc(var(--tuner-padding)*-1);top:calc(var(--tuner-padding)*-1)}.controls[data-v-204a7ad6],.controls-row[data-v-204a7ad6]{width:-moz-max-content;width:max-content}.language-switch[data-v-204a7ad6],.notation-switch[data-v-204a7ad6]{grid-template-columns:repeat(2,1fr);width:25vw}}.volume[data-v-4c533276]{display:grid;margin:100px auto 0;min-height:30px;width:min(50%,420px)}.volume-steps[data-v-4c533276]{align-items:end;display:grid;gap:3px;grid-template-columns:repeat(12,1fr);height:100px}.volume-steps i[data-v-4c533276]{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-4c533276]{background:#8fb8c7}.volume-steps i.active.mid[data-v-4c533276]{background:#d8b442}.volume-steps i.active.high[data-v-4c533276]{background:#277a73}@media(max-width:560px){.volume[data-v-4c533276]{margin-top:100px;min-height:22px;width:min(76%,320px)}.volume-steps[data-v-4c533276]{height:80px}}.readout[data-v-76c34d44]{align-items:baseline;color:#162c39;display:flex;height:170px;justify-content:center;margin-top:18px;opacity:0;overflow:hidden;transition:none}.readout.visible[data-v-76c34d44]{opacity:1;transition:opacity .64s ease}.note[data-v-76c34d44]{font-size:clamp(5rem,20vw,10rem);font-weight:900;letter-spacing:0;line-height:.82}.octave[data-v-76c34d44]{color:#277a73;font-size:clamp(2rem,6vw,3.8rem);font-weight:850;min-width:38px}@media(max-width:560px){.readout[data-v-76c34d44]{height:104px;margin:8px 0 10px}.note[data-v-76c34d44]{font-size:clamp(4.2rem,24vw,6rem)}.octave[data-v-76c34d44]{font-size:clamp(1.6rem,9vw,2.4rem);min-width:28px}}.tuning-meter[data-v-1bffab57]{align-items:center;color:#52615c;display:flex;height:74px;justify-content:center;margin-bottom:20px}.rail[data-v-1bffab57]{background:linear-gradient(180deg,rgba(23,32,29,.08),transparent 34%,transparent 66%,rgba(23,32,29,.08)),#e7ece7;border:1px solid rgba(23,32,29,.14);border-radius:8px;box-shadow:inset 0 1px #ffffffb8;height:74px;overflow:hidden;position:relative;transition:background .82s ease,border-color .82s ease,box-shadow .98s ease;width:min(100%,560px)}.rail[data-v-1bffab57]:after,.rail[data-v-1bffab57]:before{content:"";left:0;pointer-events:none;position:absolute;right:0}.rail[data-v-1bffab57]:before{background:#17201d52;height:2px;top:50%;transform:translateY(-50%)}.rail[data-v-1bffab57]:after{background:linear-gradient(180deg,transparent calc(50% - 25px),rgba(23,32,29,.08) calc(50% - 24px),transparent calc(50% - 23px)),linear-gradient(180deg,transparent calc(50% + 23px),rgba(23,32,29,.08) calc(50% + 24px),transparent calc(50% + 25px));inset:0}.target-line[data-v-1bffab57]{background:#17201d33;transform:translate(-50%,-50%)}.moving-section[data-v-1bffab57],.target-line[data-v-1bffab57]{border-radius:8px;height:12px;left:50%;max-width:calc(100% - 32px);min-width:78px;position:absolute;top:50%;width:25vw}.moving-section[data-v-1bffab57]{background:#17201d;box-shadow:0 0 0 1px #fffcf475,0 10px 22px #17201d2e;transform:translate(-50%,calc(-50% + var(--pitch-offset, 0px)));transition:transform var(--pitch-motion-duration,1.18s) cubic-bezier(.2,0,.1,1),background .82s ease,box-shadow .98s ease;will-change:transform;z-index:1}.tuning-meter.aligned .rail[data-v-1bffab57]{background:linear-gradient(180deg,rgba(19,146,87,.14),transparent 34%,transparent 66%,rgba(19,146,87,.14)),#e8f7ed;border-color:#13925785;box-shadow:inset 0 1px #fffc,0 0 26px #13925757}.tuning-meter.aligned .moving-section[data-v-1bffab57],.tuning-meter.aligned .rail[data-v-1bffab57]:before{background:#139257;box-shadow:0 0 0 1px #fffcf4a3,0 0 26px #1392579e}.tuning-meter.aligned .target-line[data-v-1bffab57]{background:#13925738}@media(max-width:560px){.tuning-meter[data-v-1bffab57]{height:58px;margin:30px 6px}.rail[data-v-1bffab57]{height:58px}}.keyboard-wrap[data-v-b63a9528]{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-b63a9528]{--white-key-width:34px;--black-key-width:22px;display:block;min-width:100%;position:relative}.keyboard[data-v-b63a9528],.white-keys[data-v-b63a9528]{height:145px;width:-moz-max-content;width:max-content}.white-keys[data-v-b63a9528]{align-items:stretch;display:flex}.black-keys[data-v-b63a9528]{height:90px;inset:0 auto auto 0;position:absolute}.piano-key[data-v-b63a9528]{align-items:flex-end;border:0;cursor:pointer;display:flex;justify-content:center;letter-spacing:0;position:relative;-webkit-tap-highlight-color:transparent;transition:background .5s ease,box-shadow .5s ease,color .5s ease,transform .5s ease}.piano-key[data-v-b63a9528]:active{transform:translateY(1px)}.piano-key.white[data-v-b63a9528]{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-b63a9528]:first-child{border-left-width:1px}.piano-key.black[data-v-b63a9528]{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-b63a9528]{background:#277a73;box-shadow:0 0 0 3px #277a7338,0 10px 28px #277a734d;color:#fffaf0;transform:translateY(-2px)}.piano-key.voice-release[data-v-b63a9528]:not(.pressed):not(.combined){transition:none}.piano-key.pressed[data-v-b63a9528]{background:#d74f2a;box-shadow:0 0 0 3px #d74f2a38,0 10px 28px #d74f2a52}.piano-key.combined[data-v-b63a9528],.piano-key.pressed[data-v-b63a9528]{color:#fffaf0;transform:translateY(-2px)}.piano-key.combined[data-v-b63a9528]{background:#8b6fc8;box-shadow:0 0 0 3px #8b6fc83d,0 10px 30px #8b6fc857}.piano-key.selected[data-v-b63a9528]: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-b63a9528]:after{font-size:11px;height:12px;top:6px;width:12px}.piano-key span[data-v-b63a9528]{display:block;font-size:.68rem;font-weight:850;line-height:1;padding-bottom:10px;pointer-events:none}.piano-key.black span[data-v-b63a9528]{font-size:.58rem;padding-bottom:8px}@media(max-width:560px){.keyboard-wrap[data-v-b63a9528]{margin:0 0 12px}.keyboard[data-v-b63a9528]{--white-key-width:32px;--black-key-width:21px;min-width:1120px}.keyboard[data-v-b63a9528],.white-keys[data-v-b63a9528]{height:136px}.black-keys[data-v-b63a9528]{height:84px}.piano-key.white[data-v-b63a9528]{height:136px}.piano-key.black[data-v-b63a9528]{height:84px}}.keyboard-control-pad[data-v-018a8532]{display:grid;gap:8px;place-items:center;justify-items:center;margin:-8px auto 22px;position:relative;width:100%;z-index:3}.control-buttons[data-v-018a8532]{align-items:center;display:grid;gap:8px;grid-template-columns:58px 220px 58px;max-width:100%;width:-moz-max-content;width:max-content}.control-key[data-v-018a8532]{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;-webkit-tap-highlight-color:transparent;transition:transform .14s ease,background .14s ease,box-shadow .14s ease}.control-key[data-v-018a8532]:focus-visible,.control-key[data-v-018a8532]:hover{background:#fffaf0;box-shadow:inset 0 1px #ffffffb8,0 12px 26px #1f29251f;outline:0;transform:translateY(-1px)}.control-key[data-v-018a8532]:active{transform:translateY(1px)}.arrow-key[data-v-018a8532]{font-size:1.35rem}.space-key[data-v-018a8532]{align-items:center;background:#277a73;color:#fffaf0;display:flex;gap:12px;justify-content:center}.space-key[data-v-018a8532]:focus-visible,.space-key[data-v-018a8532]:hover{background:#20655f}.space-label[data-v-018a8532]{font-size:.72rem;text-transform:uppercase}.space-key strong[data-v-018a8532]{font-size:1.12rem}@media(max-width:560px){.space-label[data-v-018a8532]{display:none}.keyboard-control-pad[data-v-018a8532]{-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-018a8532]{gap:8px;grid-template-columns:56px minmax(0,1fr) 56px;width:100%}.control-key[data-v-018a8532]{min-height:60px}}.start-overlay[data-v-768cad12]{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:80}.start-overlay[data-v-768cad12]:before{background:linear-gradient(145deg,#ffffff47,#ffffff0f),#fffcf414;border-radius:8px;content:"";inset:18px;pointer-events:none;position:absolute}.overlay-action[data-v-768cad12]:focus-visible,.overlay-action[data-v-768cad12]:hover{background:#b83e20;border-color:#b83e20;color:#fffaf0;outline:0;transform:translateY(-2px)}.overlay-hint[data-v-768cad12],.overlay-kicker[data-v-768cad12]{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-768cad12]{font-size:.85rem;text-transform:uppercase}.overlay-action[data-v-768cad12]{-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;pointer-events:auto;position:relative;text-transform:uppercase;transition:transform .16s ease,color .16s ease,background .16s ease;z-index:1}.overlay-hint[data-v-768cad12]{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;-webkit-touch-callout:none;touch-action:manipulation}.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(10px,5vw,20px);-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%}.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:90}.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:80px}}
