@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-cyrillic-ext-400-normal.14tx4pkryervk.woff2?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff2"),url(../media/inter-cyrillic-ext-400-normal.0rs1xbf~i0gne.woff?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-cyrillic-400-normal.0j0nt6xj209ja.woff2?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff2"),url(../media/inter-cyrillic-400-normal.0tfcly~dae28g.woff?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-greek-ext-400-normal.0sjxwfwy1.7-1.woff2?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff2"),url(../media/inter-greek-ext-400-normal.0-p59y6vp.j7a.woff?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-greek-400-normal.16tk2qho83alr.woff2?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff2"),url(../media/inter-greek-400-normal.0xmwnv-gh.rhf.woff?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-vietnamese-400-normal.0kilhpqoeqy~3.woff2?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff2"),url(../media/inter-vietnamese-400-normal.0zq7snwe4.thc.woff?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-latin-ext-400-normal.0e~6uobz6nk3d.woff2?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff2"),url(../media/inter-latin-ext-400-normal.0a.r_3c33o5qt.woff?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-latin-400-normal.0vig85~_2mxl3.woff2?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff2"),url(../media/inter-latin-400-normal.0br~z6nf9coz0.woff?dpl=dpl_7knQtQyai8jvCFDXYungjRaBFnoY)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#f3f5fa;--instrument-surface:#e4e3e7;--control-surface:linear-gradient(180deg, #fbfbfc 0%, #f7f7f9 7%, #f3f3f5 28%, #efeff1 100%);--text:#16161a;--text-muted:#9e9da5;--control-depth-shadow:inset 1px 0 2px #ffffff57, inset -1px 0 2px #ffffff38, inset 0 -2px 3px #46465a0e, 0 1px 2px #46465a47, 0 5px 12px #46465a24, 0 11px 22px #46465a0d;--key-depth-shadow:inset 1px 0 2px #ffffff57, inset -1px 0 2px #ffffff38, inset 0 -2px 3px #46465a0e, 0 5px 12px #46465a24, 0 11px 22px #46465a0d}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-width:320px;color:var(--text);margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.aura-page{--instrument-scale:min(1, calc((100vw - 32px) / 1352px), calc((100dvh - 32px) / 322px));--instrument-rendered-height:calc(322px * var(--instrument-scale));background:var(--bg);isolation:isolate;width:100%;height:100vh;min-height:0;position:relative;overflow:hidden}@supports (height:100dvh){.aura-page{height:100dvh}}.aura-canvas{z-index:0;width:100%;height:100%;position:absolute;inset:0}.instrument-zone{z-index:2;opacity:1;pointer-events:auto;flex-direction:column;justify-content:flex-end;align-items:center;width:1352px;height:322px;padding:0;transition:opacity .42s,transform .62s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:auto;bottom:0;left:50%;transform:translate(-50%)}.instrument-body{background:var(--instrument-surface);width:1352px;height:322px;box-shadow:none;transform:scale(var(--instrument-scale));transform-origin:bottom;border:1px solid #89889212;border-radius:42px;padding:16px;position:relative}.instrument-header{--header-rule-gap:30px;z-index:4;grid-template-columns:13px auto minmax(40px,1fr) auto;align-items:center;gap:0;height:44px;margin-left:28px;margin-right:18px;display:grid;position:relative;transform:translateY(2px)}.power-led{z-index:0;cursor:pointer;isolation:isolate;touch-action:manipulation;background:0 0;border:0;border-radius:50%;width:13px;height:13px;padding:0;animation:2.6s ease-in-out infinite alternate ledPulse;position:relative}.power-led:focus-visible{outline-offset:11px;outline:1px solid #7e7d866b}.power-led:before{z-index:0;content:"";background:var(--control-surface);width:34px;height:34px;box-shadow:var(--control-depth-shadow);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.power-led:after{z-index:1;content:"";background:radial-gradient(circle at 52% 48%,#fffde3 0 28%,#fff6df 47%,#f9dedb 74%,#eadbdf 100%);border-radius:50%;position:absolute;inset:0;box-shadow:0 0 8px 1px #ffd0a266}.mode-dial{z-index:5;width:112px;margin-right:var(--header-rule-gap);margin-left:32px;position:relative}.mode-screen{background:#d9d8dc;border:1px solid #76757e1c;border-radius:7px;grid-template-columns:minmax(0,1fr) 12px;align-items:center;gap:3px;width:100%;height:30px;padding:3px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 2px 5px #46465a1c,inset 0 -1px 1px #ffffff85,0 1px #ffffff47}.mode-screen:after{content:"";pointer-events:none;background:linear-gradient(#ffffff2e,#0000 48%,#5c5b6509);border-radius:4px;position:absolute;inset:3px}.mode-screen-glass{perspective:80px;background:#e7e6e98a;border-radius:4px;place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #46465a0f,inset 0 -1px #ffffff52}.mode-readout{color:#78777f;letter-spacing:0;text-transform:uppercase;transform-origin:50%;white-space:nowrap;font-family:inherit;font-size:10px;font-weight:400;line-height:1;display:block}.mode-readout.is-forward{animation:.36s cubic-bezier(.22,1,.36,1) dialRollForward}.mode-readout.is-backward{animation:.36s cubic-bezier(.22,1,.36,1) dialRollBackward}.mode-stepper{z-index:2;align-content:space-between;height:22px;display:grid;position:relative}.mode-step-button{appearance:none;width:12px;height:10px;box-shadow:none;color:#8d8c94;cursor:pointer;opacity:.5;border:0;border-radius:0;place-items:center;padding:0;transition:opacity .16s,transform .12s cubic-bezier(.4,0,.2,1);display:grid;background:0 0!important}.mode-step-button:hover,.mode-step-button:focus-visible{opacity:.92;background:0 0!important}.mode-step-button:focus-visible{outline-offset:1px;outline:1px solid #7e7d8657}.mode-step-button:active{opacity:1;transform:scale(.84)}.mode-step-button .filled-triangle{opacity:1}.header-rule{background:#7e7d862e;height:1px;margin:0}.transport{margin-left:var(--header-rule-gap);gap:10px;display:flex}.transport-button{background:var(--control-surface);width:34px;height:34px;box-shadow:var(--control-depth-shadow);color:var(--text-muted);cursor:pointer;border:0;border-radius:50%;place-items:center;transition:transform .12s cubic-bezier(.4,0,.2,1),box-shadow .22s;display:grid;position:relative}.transport-button:active{transform:translateY(1px);box-shadow:0 1px 1px #46465a09,0 2px 6px #46465a0b}.transport-button:disabled,.piano-key:disabled{cursor:default}.filled-triangle{opacity:.82;width:0;height:0;display:block}.filled-triangle.is-up{border-bottom:4px solid;border-left:3px solid #0000;border-right:3px solid #0000}.filled-triangle.is-down{border-top:4px solid;border-left:3px solid #0000;border-right:3px solid #0000}.filled-triangle.is-left{border-top:5px solid #0000;border-bottom:5px solid #0000;border-right:7px solid;transform:translate(-1px)}.filled-triangle.is-right{border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid;transform:translate(1px)}.control-icon{fill:currentColor;stroke:none;flex:none;display:block}.solid-control-icon.is-linear{fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:2.8px}.solid-control-icon[data-solid-icon=download]{stroke-width:2.4px}.keybed{z-index:1;height:calc(100% - 59px);margin-top:15px;position:relative}.white-keys{z-index:1;grid-template-columns:repeat(14,1fr);gap:10px;height:100%;display:grid;position:relative}.piano-key{cursor:pointer;touch-action:none;border:0;transition:transform .32s cubic-bezier(.4,0,.2,1),box-shadow .32s,background .32s,filter .32s;position:relative;overflow:hidden}.piano-key:after{z-index:0;border-radius:inherit;pointer-events:none;content:"";filter:blur(9px);opacity:0;background:radial-gradient(at 50% 44%,#fff6deb8 0 18%,#ffd9a061 48%,#f3b27c00 76%);transition:opacity .32s;position:absolute;inset:-10px -8px -12px}.white-key{background:var(--control-surface);height:100%;box-shadow:var(--key-depth-shadow);border-radius:4px 4px 14px 14px}.white-key:first-child{border-bottom-left-radius:30px}.white-key:last-child{border-bottom-right-radius:30px}.upper-key-slot{--white-key-width:calc((100% - 130px) / 14);--upper-slot-width:calc(var(--white-key-width) * .84);--upper-slot-depth:14px;top:0;left:calc(var(--upper-left) - (var(--upper-slot-width) / 2));z-index:2;width:var(--upper-slot-width);background:var(--instrument-surface);pointer-events:none;border-radius:0 0 15px 15px;justify-content:center;height:69%;display:flex;position:absolute;box-shadow:inset 1px 0 2px #46465a0e,inset -1px 0 2px #46465a0e,inset 0 -3px 6px #46465a14}.upper-key{z-index:3;width:69.05%;height:calc(100% - var(--upper-slot-depth));background:var(--control-surface);box-shadow:var(--key-depth-shadow);pointer-events:auto;border-radius:3px 3px 12px 12px;flex:none;position:relative}.piano-key.is-active,.piano-key.is-detected{box-shadow:var(--key-depth-shadow), inset 0 0 14px 4px #ffdebf57, inset 0 0 32px 11px #ffcdbb26;filter:none;background:radial-gradient(at 50% 44%,#fffde7 0 24%,#fff9e5 48%,#fff0e5 78%,#ffeae7 100%);transition-duration:.12s}.piano-key.is-active{transform:translateY(2px)}.piano-key.is-active:after,.piano-key.is-detected:after{opacity:1;transition-duration:.12s}.piano-key.is-melody:after{animation:.82s ease-in-out infinite alternate microphoneMelodyBreath}.piano-key.is-microphone-beat{animation:.105s cubic-bezier(.22,.8,.36,1) both microphoneKeyBeat}.is-resetting .piano-key,.is-resetting .piano-key:after{transition:none}.export-dock{right:clamp(16px,3vw,36px);bottom:calc(var(--instrument-rendered-height) + clamp(16px, 3vw, 32px));z-index:4;opacity:0;pointer-events:none;gap:8px;transition:opacity .28s,transform .28s;display:flex;position:absolute;transform:translateY(5px)}.export-dock.is-ready{opacity:1;pointer-events:auto;transform:translateY(0)}.microphone-dock{bottom:calc(var(--instrument-rendered-height) + clamp(16px, 3vw, 32px));z-index:4;position:absolute;left:clamp(16px,3vw,36px)}.export-button,.preview-control{background:var(--control-surface);width:34px;height:34px;box-shadow:var(--control-depth-shadow);color:#62616ab8;cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;transition:color .16s,opacity .16s,transform .12s cubic-bezier(.4,0,.2,1),box-shadow .22s;display:grid;position:relative}.export-button:hover,.export-button:focus-visible,.preview-control:hover,.preview-control:focus-visible{color:#403f46e0;transform:translateY(-1px)}.export-button:active,.preview-control:active{transform:translateY(1px);box-shadow:0 1px 1px #46465a09,0 2px 6px #46465a0b}.export-button:focus-visible,.preview-control:focus-visible{outline-offset:3px;outline:1px solid #7e7d865c}.export-button:disabled,.preview-control:disabled{cursor:default;opacity:.46;transform:none}.export-button.is-exporting .control-icon{animation:.76s ease-in-out infinite alternate exportPulse}.microphone-button{--mic-level:0;isolation:isolate}.microphone-button:after{z-index:0;content:"";opacity:calc(.08 + var(--mic-level) * .72);pointer-events:none;transform:scale(calc(.76 + var(--mic-level) * .24));background:#ffd4e62e;border:1px solid #ef74aa6b;border-radius:50%;transition:opacity 90ms linear,transform 90ms linear;position:absolute;inset:4px}.microphone-button .control-icon{z-index:1;position:relative}.microphone-button.is-listening{color:#b13a7ad1}.microphone-button.is-requesting .control-icon{animation:.76s ease-in-out infinite alternate exportPulse}.microphone-button.is-requesting:after{animation:.9s cubic-bezier(.4,0,.2,1) infinite microphoneRequest}.microphone-button.is-listening .control-icon{animation:.48s cubic-bezier(.22,1,.36,1) both microphoneConnected}.microphone-button.is-error{color:#9c5467c2}.microphone-button.is-error .control-icon{animation:.36s cubic-bezier(.4,0,.2,1) both controlNudge}.microphone-permission-backdrop{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);will-change:opacity;background:#f5f5f78f;place-items:center;padding:24px;animation:.28s ease-out both overlayReveal;display:grid;position:absolute;inset:0}.microphone-permission-backdrop.is-closing{pointer-events:none;animation:.24s ease-in both overlayDismiss}.microphone-permission{background:var(--instrument-surface);transform-origin:18% 100%;will-change:opacity, transform;border:1px solid #7e7d8613;border-radius:30px;width:min(380px,100vw - 48px);padding:14px;animation:.42s cubic-bezier(.16,1,.3,1) both permissionReveal;overflow:hidden;box-shadow:0 18px 48px #46465a1a,inset 0 1px #fff6,inset 0 -1px #46465a06}.microphone-permission-backdrop.is-closing .microphone-permission{animation:.24s cubic-bezier(.4,0,1,1) both panelDismiss}.microphone-permission-header{grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:14px;height:50px;margin-bottom:14px;padding:0 2px 0 12px;display:grid}.microphone-permission-header h2{color:#85848c;letter-spacing:0;text-transform:uppercase;margin:0;font-family:inherit;font-size:10px;font-weight:400;animation:.36s cubic-bezier(.22,1,.36,1) 70ms both overlayDetailReveal}.microphone-permission-screen{text-align:center;background:#f7f7f9f0;border:1px solid #7e7d8611;border-radius:20px;place-items:center;min-height:152px;padding:26px 28px;display:grid;overflow:hidden;box-shadow:inset 0 2px 7px #46465a13,inset 0 -1px #ffffff94,0 1px #fff3}.microphone-permission-content{justify-items:center;gap:16px;animation:.44s cubic-bezier(.22,1,.36,1) 90ms both overlayContentReveal;display:grid}.microphone-permission-icon{background:var(--control-surface);width:42px;height:42px;box-shadow:var(--control-depth-shadow);color:#b13a7ab8;border-radius:50%;place-items:center;display:grid}.microphone-permission.is-granting .microphone-permission-icon{animation:.42s cubic-bezier(.22,1,.36,1) both permissionConfirmed}.microphone-permission-screen p{color:#62616ac7;max-width:250px;margin:0;font-family:inherit;font-size:12px;font-weight:400;line-height:1.5}.microphone-permission-action{background:var(--control-surface);width:100%;height:44px;box-shadow:var(--control-depth-shadow);color:#4e4d55d1;cursor:pointer;border:0;border-radius:14px;margin-top:12px;font-family:inherit;font-size:12px;font-weight:400;transition:color .16s,transform .12s cubic-bezier(.4,0,.2,1),box-shadow .22s;animation:.44s cubic-bezier(.22,1,.36,1) .14s both overlayContentReveal}.microphone-permission-action:hover,.microphone-permission-action:focus-visible{color:#302f36eb}.microphone-permission-action:active{transform:translateY(1px);box-shadow:0 1px 1px #46465a09,0 2px 6px #46465a0b}.microphone-permission-action.is-confirming{color:#b13a7ad1;transform:translateY(1px)scale(.985);box-shadow:inset 0 1px 4px #46465a11,0 1px 3px #46465a0e}.microphone-permission-action:focus-visible{outline-offset:3px;outline:1px solid #7e7d865c}.export-preview-backdrop{z-index:20;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);will-change:opacity;background:#f5f5f794;place-items:center;padding:24px;animation:.3s ease-out both overlayReveal;display:grid;position:absolute;inset:0}.export-preview-backdrop.is-closing{pointer-events:none;animation:.24s ease-in both overlayDismiss}.export-preview{background:var(--instrument-surface);transform-origin:92% 100%;will-change:opacity, transform;border:1px solid #7e7d8613;border-radius:32px;width:min(900px,100vw - 48px);max-height:calc(100dvh - 48px);padding:14px;animation:.46s cubic-bezier(.16,1,.3,1) both previewReveal;overflow:hidden;box-shadow:0 20px 54px #46465a1b,inset 0 1px #fff6,inset 0 -1px #46465a06}.export-preview-backdrop.is-closing .export-preview{animation:.24s cubic-bezier(.4,0,1,1) both panelDismiss}.export-preview-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;height:52px;margin-bottom:14px;padding:0 2px 0 12px;display:grid}.export-preview-label{color:#85848c;letter-spacing:0;text-transform:uppercase;font-family:inherit;font-size:10px;font-weight:400;animation:.38s cubic-bezier(.22,1,.36,1) 80ms both overlayDetailReveal}.export-preview-actions{align-items:center;gap:12px;display:flex}.export-preview-actions .preview-control{animation:.4s cubic-bezier(.16,1,.3,1) .1s both overlayControlReveal}.export-preview-actions .preview-control+.preview-control{animation-delay:.145s}.dialog-close{flex:none;margin:0;padding:0}.dialog-close .control-icon{width:15px;height:15px;margin:0;transition:transform .18s cubic-bezier(.22,1,.36,1)}.dialog-close:hover .control-icon,.dialog-close:focus-visible .control-icon{transform:rotate(5deg)scale(1.06)}.export-preview-screen{background:#f7f7f9f0;border:1px solid #7e7d8611;border-radius:22px;place-items:center;min-height:180px;max-height:calc(100dvh - 142px);margin:0;animation:.48s cubic-bezier(.16,1,.3,1) 85ms both previewScreenReveal;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 2px 7px #46465a13,inset 0 -1px #ffffff94,0 1px #fff3}.export-preview-screen canvas{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 144px);transition:opacity .22s,transform .36s cubic-bezier(.22,1,.36,1);display:block}.export-preview.is-processing .export-preview-screen canvas{opacity:.58;transform:scale(.992)}.export-feedback{z-index:2;color:#52515ac7;background:#f7f7f980;align-content:center;justify-items:center;gap:12px;animation:.26s ease-out both exportFeedbackReveal;display:grid;position:absolute;inset:0}.export-feedback-icon{background:var(--control-surface);width:42px;height:42px;box-shadow:var(--control-depth-shadow);color:#62616ac7;border-radius:50%;place-items:center;display:grid}.export-feedback.is-preparing .export-feedback-icon{animation:.76s ease-in-out infinite alternate exportPreparing}.export-feedback.is-complete .export-feedback-icon{color:#b13a7ac2;animation:.46s cubic-bezier(.16,1,.3,1) both exportComplete}.export-feedback.is-error .export-feedback-icon{color:#9c5467c2;animation:.36s cubic-bezier(.4,0,.2,1) both controlNudge}.export-feedback-label{letter-spacing:0;text-transform:uppercase;font-size:10px;font-weight:400}.preview-control.is-exporting .control-icon{animation:.76s ease-in-out infinite alternate exportPulse}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@keyframes ledPulse{0%{opacity:.85}to{opacity:1}}@keyframes dialRollForward{0%{opacity:0;transform:translateY(-15px)rotateX(54deg)scale(.9)}to{opacity:1;transform:translateY(0)rotateX(0)scale(1)}}@keyframes dialRollBackward{0%{opacity:0;transform:translateY(15px)rotateX(-54deg)scale(.9)}to{opacity:1;transform:translateY(0)rotateX(0)scale(1)}}@keyframes overlayReveal{0%{opacity:0}}@keyframes overlayDismiss{to{opacity:0}}@keyframes permissionReveal{0%{opacity:0;transform:translateY(18px)scale(.955)}}@keyframes previewReveal{0%{opacity:0;transform:translateY(22px)scale(.965)}}@keyframes panelDismiss{to{opacity:0;transform:translateY(8px)scale(.982)}}@keyframes overlayDetailReveal{0%{opacity:0;transform:translateY(4px)}}@keyframes overlayContentReveal{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes overlayControlReveal{0%{opacity:0;transform:translateY(8px)scale(.82)}}@keyframes previewScreenReveal{0%{opacity:0;transform:translateY(8px)scale(.99)}}@keyframes exportFeedbackReveal{0%{opacity:0}}@keyframes exportPreparing{0%{opacity:.72;transform:translateY(1px)scale(.96)}to{opacity:1;transform:translateY(-1px)scale(1.02)}}@keyframes exportComplete{0%{opacity:0;transform:scale(.7)}58%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes microphoneRequest{0%,to{opacity:.16;transform:scale(.76)}50%{opacity:.66;transform:scale(1)}}@keyframes microphoneConnected{0%{opacity:.45;transform:scale(.72)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes permissionConfirmed{0%{transform:scale(1)}48%{color:#b13a7ae6;transform:scale(.9)}to{transform:scale(1.04)}}@keyframes controlNudge{0%,to{transform:translate(0)}35%{transform:translate(-2px)}70%{transform:translate(2px)}}@keyframes exportPulse{0%{opacity:.34}to{opacity:1}}@keyframes microphoneKeyBeat{0%,to{filter:brightness();transform:translateY(0)}48%{filter:brightness(1.025);transform:translateY(3px)}}@keyframes microphoneMelodyBreath{0%{opacity:.7}to{opacity:1}}@media (max-width:620px){.export-button,.preview-control{width:32px;height:32px}}@media (max-width:420px){.microphone-permission-backdrop,.export-preview-backdrop{padding:12px}.microphone-permission,.export-preview{border-radius:26px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.microphone-permission-header,.export-preview-header{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding-left:10px}.microphone-permission-screen{border-radius:18px;padding:24px 20px}.export-preview-screen{border-radius:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.power-led{animation:none}}
