:root{color:#172035;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at top left,rgba(105,92,255,.14),transparent 34rem),#f5f7fb}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.page-shell{width:min(100% - 2rem,760px);margin:0 auto;padding:clamp(2.5rem,8vw,6rem) 0 3rem}.hero{margin-bottom:2rem;text-align:center}.eyebrow,.section-label{margin:0 0 .6rem;color:#6557e8;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}h1{margin:0;font-size:clamp(2.3rem,8vw,4.5rem);letter-spacing:-.055em;line-height:1}.subtitle{margin:1.2rem auto 0;color:#667087;font-size:clamp(1rem,3vw,1.18rem)}.workspace{display:grid;gap:1rem}.upload-card,.pitch-card,.options-card,.progress-card,.preview-card{border:1px solid rgba(111,102,193,.18);border-radius:1.5rem;background:#ffffffe6;box-shadow:0 1.2rem 3.5rem #24205b12}.upload-card{padding:clamp(2rem,7vw,4rem) 1.5rem;border-style:dashed;border-color:#aaa5df;text-align:center;transition:border-color .16s ease,background .16s ease,transform .16s ease}.upload-card.is-dragging{border-color:#5e50dc;background:#f1efff;transform:scale(1.01)}.upload-card h2{margin:.8rem 0 .3rem;overflow-wrap:anywhere;font-size:1.3rem}.upload-card p,.privacy-note{color:#7a8295}.upload-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem}.sample-button{min-height:48px;margin-top:.8rem;padding:0 1.25rem;border:1px solid #d9d6ef;border-radius:.9rem;color:#5145c8;background:#fff;font:inherit;font-weight:750;cursor:pointer}.sample-button:disabled{cursor:not-allowed;opacity:.52}.upload-icon{display:grid;width:3.8rem;height:3.8rem;margin:0 auto;border-radius:1.15rem;color:#fff;background:linear-gradient(145deg,#7568f4,#5142d2);place-items:center;font-size:1.8rem;box-shadow:0 .8rem 1.8rem #5c4cdd42}.pitch-card{padding:1.4rem}.pitch-card h2{margin:0;font-size:1.15rem}.pitch-value{margin:1rem 0;text-align:center;font-size:2.5rem;font-weight:800;letter-spacing:-.05em}.pitch-value span{color:#747d91;font-size:.85rem;font-weight:600;letter-spacing:0}.pitch-actions{display:grid;grid-template-columns:48px 1fr 48px;gap:.8rem;align-items:center}.pitch-actions button{min-width:48px;min-height:48px;border:1px solid #dedcf1;border-radius:.9rem;background:#fafaff;color:#4f42c7;font-size:1.5rem;font-weight:700}.pitch-actions input{width:100%;accent-color:#5e50dc}.pitch-warning{margin:1rem 0 0;color:#a35c13;text-align:center;font-size:.9rem}.options-card{display:grid;padding:1.4rem;gap:1rem}.options-card h2{margin:0;font-size:1.15rem}.option-grid{display:grid;gap:.7rem}.choice-card{display:flex;min-width:0;padding:.9rem;border:1px solid #dedcf1;border-radius:.9rem;background:#fafaff;gap:.75rem;cursor:pointer}.choice-card:has(input:checked){border-color:#6a5be6;background:#f1efff}.choice-card input{flex:0 0 auto;margin-top:.2rem;accent-color:#5e50dc}.choice-card span{color:#687187;font-size:.88rem;line-height:1.45}.choice-card strong{display:block;margin-bottom:.16rem;color:#172035;font-size:.95rem}.option-help{margin:0;color:#777f92;font-size:.85rem;line-height:1.5}.primary-button,.download-button,.secondary-button{min-height:48px;border:0;border-radius:.9rem;font-weight:750;cursor:pointer}.primary-button,.download-button{display:grid;width:100%;padding:0 1.5rem;color:#fff;background:linear-gradient(135deg,#6859ea,#4939c7);box-shadow:0 .8rem 1.7rem #4939c733;place-items:center}.download-button{text-decoration:none}.secondary-button{margin-top:.8rem;padding:0 1.25rem;color:#5145c8;background:#eeecff}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid rgba(94,80,220,.35);outline-offset:3px}.progress-card{padding:1.25rem}.progress-heading{display:flex;justify-content:space-between;margin-bottom:.75rem}.progress-heading span{color:#6d768a;font-variant-numeric:tabular-nums}.progress-track{height:.65rem;overflow:hidden;border-radius:999px;background:#e9e8f4}.progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#7164ef,#4d3fc7);transition:width .26s ease}.preview-card{display:grid;gap:1rem;padding:1.25rem}.preview-card h2{margin:0;font-size:1.15rem}.result-audio{width:100%;min-height:54px}.error-message{margin:0;padding:1rem 1.1rem;border-radius:.9rem;color:#9f2e2e;background:#fff0f0}.site-footer{margin-top:1.5rem;text-align:center}.privacy-note{margin:0;text-align:center;font-size:.86rem}.icp-link{display:inline-block;margin-top:.65rem;color:#7a8295;font-size:.86rem;text-decoration:none}.icp-link:hover,.icp-link:focus-visible{color:#5142d2;text-decoration:underline;text-underline-offset:.2em}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(min-width:640px){.pitch-card,.options-card{padding:1.7rem 2rem}.format-options{grid-template-columns:repeat(3,minmax(0,1fr))}}.admin-shell{width:min(100% - 2rem,1080px);margin:0 auto;padding:clamp(2rem,6vw,4rem) 0}.admin-header,.history-heading,.admin-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.admin-header{margin-bottom:2rem}.admin-header h1{font-size:clamp(2rem,6vw,3.6rem)}.admin-actions a,.text-button{color:#5145c8;font-weight:700}.text-button{padding:0;border:0;background:none;cursor:pointer}.admin-loading{color:#6d768a;text-align:center}.login-card,.metric-card,.history-card{border:1px solid rgba(111,102,193,.18);border-radius:1.25rem;background:#fffffff0;box-shadow:0 1.2rem 3.5rem #24205b12}.login-card{display:grid;width:min(100%,440px);margin:0 auto;padding:clamp(1.5rem,5vw,2.5rem);gap:1rem}.login-card h2,.login-card p{margin:0}.login-card>p{color:#6d768a}.login-card label{display:grid;gap:.45rem;font-weight:700}.login-card input{width:100%;min-height:48px;padding:0 .85rem;border:1px solid #d9d6ef;border-radius:.8rem;background:#fff}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.metric-card{display:grid;padding:clamp(1.25rem,4vw,2rem);gap:.65rem}.metric-card span{color:#70798c;font-weight:700}.metric-card strong{font-size:clamp(2rem,7vw,3.8rem);letter-spacing:-.05em}.history-card{margin-top:1rem;padding:clamp(1.25rem,4vw,2rem)}.history-heading{margin-bottom:1rem}.history-heading h2,.history-heading .secondary-button{margin:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:.9rem .75rem;border-bottom:1px solid #eceaf5}th{color:#70798c;font-size:.8rem;letter-spacing:.06em}.filename-cell{max-width:32rem;overflow-wrap:anywhere}.filename-cell small{display:block;margin-top:.25rem;color:#7a8295}.empty-cell{padding:2rem;color:#7a8295;text-align:center}.log-pagination{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;gap:1rem}.log-pagination p{margin:0;color:#687187}.log-pagination p span{margin-left:.7rem;color:#8a91a2}.log-pagination div{display:flex;gap:.7rem}.log-pagination .secondary-button{margin:0}.status-chip{display:inline-flex;padding:.28rem .58rem;border-radius:999px;font-size:.78rem;font-weight:800;white-space:nowrap}.status-chip.is-queued,.status-chip.is-processing{color:#72540c;background:#fff5cc}.status-chip.is-completed{color:#176b3b;background:#dcf8e8}.status-chip.is-failed{color:#a12d2d;background:#ffe4e4}.log-button{padding:.45rem .7rem;border:0;border-radius:.65rem;color:#5145c8;background:#eeecff;font-weight:750;cursor:pointer}.detail-row td{padding:0;background:#f8f7fd}.log-detail{display:grid;padding:1rem;gap:.8rem}.log-detail pre{max-height:24rem;margin:0;padding:1rem;overflow:auto;border-radius:.75rem;color:#d8def1;background:#172035;font:.78rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.log-error{padding:.8rem;border-radius:.75rem;color:#912d2d;background:#fff0f0}.failed-file-link{justify-self:start;color:#5145c8;font-weight:750}.tool-page-shell{width:min(100% - 2rem,960px);margin:0 auto;padding:clamp(1.5rem,5vw,4rem) 0 3rem}.tool-page-header{margin-bottom:2rem}.back-link{display:inline-flex;margin-bottom:clamp(1.8rem,5vw,3.5rem);color:#5a4dd1;font-size:.9rem;font-weight:750;text-decoration:none}.back-link:hover{text-decoration:underline;text-underline-offset:.22em}.tool-heading{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:1.25rem}.tool-heading-icon{display:grid;width:4.2rem;height:4.2rem;border-radius:1.25rem;color:#fff;background:linear-gradient(145deg,#7568f4,#5142d2);box-shadow:0 .8rem 1.8rem #5c4cdd3d;place-items:center;font-size:1.9rem;font-weight:800}.tool-heading h1{font-size:clamp(2.6rem,8vw,5rem)}.tool-description{max-width:720px;margin:1rem 0 0;color:#667087;font-size:clamp(1rem,2.5vw,1.18rem);line-height:1.65}.tool-privacy{display:inline-flex;align-items:center;margin:.9rem 0 0;color:#7a8295;font-size:.82rem;gap:.5rem}.tool-privacy i{width:.45rem;height:.45rem;border-radius:50%;background:#159477}.tuner-workspace,.metronome-workspace{display:grid;padding:clamp(1rem,4vw,2.2rem);border:1px solid rgba(111,102,193,.18);border-radius:1.6rem;background:#ffffffeb;box-shadow:0 1.2rem 3.5rem #24205b14;gap:1rem}.tuner-topline{display:flex;align-items:center;justify-content:space-between;gap:.9rem}.live-indicator{display:inline-flex;align-items:center;color:#7a8295;font-size:.82rem;gap:.45rem}.live-indicator i{width:.48rem;height:.48rem;border-radius:50%;background:#a8afbd}.live-indicator.active{color:#118268}.live-indicator.active i{background:#159477;box-shadow:0 0 0 5px #1594771f}.reference-control{display:flex;align-items:center;color:#667087;font-size:.82rem;gap:.45rem}.reference-control input{width:4.8rem;min-height:2.4rem;padding:0 .55rem;border:1px solid #d9d6ef;border-radius:.7rem;color:#172035;background:#fafaff}.segmented{display:inline-flex;padding:.2rem;border:1px solid #dedcf1;border-radius:.8rem;background:#f5f4fb}.segmented button{min-height:2.15rem;padding:0 .7rem;border:0;border-radius:.6rem;color:#747d91;background:transparent;cursor:pointer;font-size:.75rem}.segmented button.active{color:#4f42c7;background:#fff;box-shadow:0 .2rem .7rem #24205b14}.tuner-main{display:grid;grid-template-columns:.7fr 1.6fr .7fr;align-items:center;padding:clamp(1rem,4vw,1.75rem);border:1px solid #e0dff0;border-radius:1.2rem;background:#fafaff}.pitch-display{text-align:center}.pitch-display>span{color:#7a8295;font-size:.72rem;font-weight:700;letter-spacing:.08em}.pitch-display strong{display:block;margin:.65rem 0;font-size:clamp(3.6rem,9vw,6rem);letter-spacing:-.06em;line-height:.9}.pitch-display sup{margin-left:.2rem;color:#7a8295;font-size:1.4rem}.pitch-display p{margin:0;color:#667087;font:.85rem ui-monospace,SFMono-Regular,Consolas,monospace}.tuner-dial svg{display:block;width:100%;overflow:visible}.dial-arc{fill:none;stroke:#d9d7e8;stroke-width:2}.tuned-arc{fill:none;stroke:#159477;stroke-width:4}.tick{stroke:#9aa1b1;stroke-width:1}.tick.major{stroke-width:2}.tick.center{stroke:#159477}.tuner-dial text{fill:#7a8295;font:10px ui-monospace,SFMono-Regular,Consolas,monospace}.needle{color:#4f42c7;transform-origin:150px 132px;transition:transform .12s ease}.needle line{stroke:currentColor;stroke-width:3}.needle circle{fill:currentColor}.needle.flat,.cents-readout.flat{color:#2879c7}.needle.sharp,.cents-readout.sharp{color:#cc584e}.needle.tuned,.cents-readout.tuned{color:#118268}.needle.waiting{opacity:.28}.cents-readout{display:grid;text-align:center}.cents-readout strong{font:750 2rem ui-monospace,SFMono-Regular,Consolas,monospace}.cents-readout span{color:#7a8295;font-size:.72rem}.cents-readout p{margin:.65rem 0 0;font-weight:750}.signal-panel,.history-panel{padding:1rem;border:1px solid #e0dff0;border-radius:1rem;background:#fafaff}.panel-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;font-size:.8rem;font-weight:750}.panel-label small{color:#7a8295}.volume-track{height:.55rem;overflow:hidden;border-radius:999px;background:#e8e7f1}.volume-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7568f4,#159477);transition:width 80ms linear}.volume-track span.loud{background:#cc584e}.signal-panel p{margin:.65rem 0 0;color:#7a8295;font-size:.78rem}.history-panel svg{width:100%;height:5.6rem;overflow:visible}.history-panel line{stroke:#d9d7e8;stroke-dasharray:5 6}.history-panel path{fill:none;stroke:#6557e8;stroke-width:2;vector-effect:non-scaling-stroke}.tuner-button.stop,.play-button.stop{background:#cc584e;box-shadow:0 .8rem 1.7rem #cc584e33}.metronome-workspace{max-width:800px;margin-inline:auto;place-items:center}.tempo-display{display:grid;width:min(100%,560px);grid-template-columns:3.4rem 1fr 3.4rem;align-items:center;gap:1.2rem}.tempo-display>button{height:3.4rem;border:1px solid #dedcf1;border-radius:50%;color:#4f42c7;background:#fafaff;cursor:pointer;font-size:1.75rem}.tempo-display label{display:grid;text-align:center}.tempo-display input{width:100%;height:auto;padding:0;border:0;color:#172035;background:transparent;font-size:clamp(4.7rem,14vw,8.2rem);font-weight:800;letter-spacing:-.08em;text-align:center}.tempo-display span{color:#7a8295;font:.75rem ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em}.tempo-slider{width:min(100%,640px);accent-color:#5e50dc}.beat-lights{display:grid;width:min(100%,640px);grid-template-columns:repeat(var(--beats),1fr);gap:.5rem}.beat-lights span{display:grid;min-width:0;aspect-ratio:1.65;border:1px solid #dedcf1;border-radius:.85rem;color:#7a8295;background:#fafaff;place-items:center;transition:80ms ease}.beat-lights span.downbeat{border-color:#aaa5df}.beat-lights span.active{color:#fff;background:#6557e8;box-shadow:0 .55rem 1rem #6557e82e;transform:translateY(-4px)}.play-button,.tap-button,.control-grid,.subdivision-preview{width:min(100%,640px)}.play-button{display:flex;justify-content:center}.play-button small{margin-left:auto;opacity:.72}.tap-button{display:grid;min-height:4rem;border:1px solid #d0cdec;border-radius:.9rem;color:#4f42c7;background:#fafaff;cursor:pointer;place-items:center;font-weight:800;letter-spacing:.06em}.tap-button small{color:#7a8295;font-size:.68rem;font-weight:500;letter-spacing:0}.control-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.control-grid label{display:grid;min-width:0;color:#667087;font-size:.75rem;font-weight:700;gap:.5rem}.control-grid select{width:100%;min-height:2.8rem;padding:0 .7rem;border:1px solid #dedcf1;border-radius:.75rem;color:#172035;background:#fafaff}.control-grid input{width:100%;accent-color:#5e50dc}.control-grid output{float:right;color:#172035}.accent-control button{display:flex;min-height:2.8rem;align-items:center;justify-content:center;border:1px solid #dedcf1;border-radius:.75rem;color:#747d91;background:#fafaff;cursor:pointer;gap:.45rem}.accent-control button i{width:.55rem;height:.55rem;border-radius:50%;background:#a8afbd}.accent-control button.active{border-color:#aaa5df;color:#4f42c7;background:#f1efff}.accent-control button.active i{background:#6557e8}.subdivision-preview{display:flex;min-height:1.2rem;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem}.subdivision-preview span{width:.4rem;height:.4rem;border-radius:50%;background:#d4d2e2}.subdivision-preview span.beat{width:.58rem;height:.58rem}.subdivision-preview span.active{background:#6557e8;box-shadow:0 0 0 5px #6557e81f}.metronome-error{width:min(100%,640px)}.companion-link{display:grid;grid-template-columns:auto 1fr auto;align-items:center;margin-top:1rem;padding:1rem 1.2rem;border:1px solid rgba(111,102,193,.16);border-radius:1rem;background:#ffffffb3;gap:.9rem}.companion-link>span{display:grid;width:2.6rem;height:2.6rem;border-radius:.8rem;color:#5145c8;background:#eeecff;place-items:center;font-size:1.25rem}.companion-link p{margin:.2rem 0 0;color:#7a8295;font-size:.82rem}.companion-link a{color:#5145c8;font-size:.85rem;font-weight:750;text-decoration:none;white-space:nowrap}.faq-section{margin-top:clamp(3rem,8vw,5rem)}.faq-list{border-top:1px solid #d9d7e8}.faq-list details{border-bottom:1px solid #d9d7e8}.faq-list summary{display:flex;padding:1.25rem 0;align-items:center;justify-content:space-between;font-weight:750;cursor:pointer;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:#6557e8;font-size:1.4rem;transition:transform .16s ease}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{max-width:760px;margin:0;padding:0 0 1.25rem;color:#667087;line-height:1.7}.tool-footer{margin-top:2rem;text-align:center}.tool-footer a{color:#7a8295;font-size:.82rem;text-decoration:none}.tool-footer a:hover{text-decoration:underline;text-underline-offset:.2em}@media(max-width:560px){.log-pagination{align-items:stretch;flex-direction:column}.log-pagination div{display:grid;grid-template-columns:1fr 1fr}.admin-header{align-items:flex-start}.admin-actions{align-items:flex-end;flex-direction:column}.metric-grid{grid-template-columns:1fr}th,td{min-width:7rem}.filename-cell{min-width:13rem}.tool-heading{grid-template-columns:1fr}.tool-heading-icon{width:3.6rem;height:3.6rem}.tuner-topline{align-items:stretch;flex-direction:column}.reference-control{justify-content:space-between}.segmented{display:grid;grid-template-columns:1fr 1fr}.tuner-main{grid-template-columns:1fr}.pitch-display{order:1}.tuner-dial{order:2}.cents-readout{order:3}.tempo-display{grid-template-columns:2.7rem 1fr 2.7rem;gap:.45rem}.tempo-display>button{height:2.7rem}.tempo-display input{font-size:clamp(4rem,23vw,5.8rem)}.beat-lights span{aspect-ratio:1}.control-grid{grid-template-columns:1fr 1fr}.companion-link{grid-template-columns:auto 1fr}.companion-link a{grid-column:2}}@media(min-width:561px)and (max-width:900px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-grid{grid-template-columns:1fr 1fr}}
