:root{--paper:#e8ebf0;--surface:#f8f9fb;--ink:#161922;--muted:#5b6372;--line:#cfd4dd;--accent:#2f3cf5;--accent-ink:#fff;--danger:#c4283c;--seg-off-l:.9;--seg-off-c:.035;--seg-near-l:.8;--seg-on-l:.68;--display:"Unbounded", system-ui, sans-serif;--body:"Onest", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#14161c;--surface:#1c1f27;--ink:#eceef3;--muted:#9aa1ae;--line:#2e323d;--accent:#7d87ff;--accent-ink:#0d1030;--danger:#ff7686;--seg-off-l:.27;--seg-off-c:.012;--seg-near-l:.5;--seg-on-l:.74;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--body);-webkit-font-smoothing:antialiased;margin:0}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.page{flex-direction:column;max-width:1120px;min-height:100vh;margin:0 auto;padding:0 24px;display:flex}main{flex:1}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;display:flex}.logo{font:700 20px/1 var(--display);letter-spacing:-.02em;color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.logo-disc{background:radial-gradient(circle, var(--paper) 0 3px, transparent 3.5px), conic-gradient(from 0deg, oklch(70% .16 95), oklch(70% .16 185), oklch(70% .16 275), oklch(70% .16 5), oklch(70% .16 95));border-radius:50%;width:26px;height:26px}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:999px;gap:4px;padding:4px;display:flex}.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:8px 16px;font-size:15px;font-weight:500}.tabs button[aria-selected=true]{background:var(--ink);color:var(--paper)}.hero{padding:9vh 0 40px;transition:padding .35s}.hero.compact{padding-top:24px}.hero h1{font:900 clamp(34px, 6.4vw, 76px) / 1.02 var(--display);letter-spacing:-.035em;text-wrap:balance;max-width:15ch;margin:0 0 36px}.hero.compact h1{max-width:none;margin-bottom:22px;font-size:clamp(26px,3.4vw,40px)}.url-form{background:var(--surface);border:2px solid var(--ink);border-radius:22px;gap:8px;max-width:820px;padding:8px;display:flex}.url-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 5px color-mix(in oklch, var(--accent) 18%, transparent)}.url-form input{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:12px 14px;font-size:19px}.url-form input::placeholder{color:var(--muted)}.hint{color:var(--muted);max-width:62ch;margin:14px 4px 0}.error{color:var(--danger);margin:14px 4px 0;font-weight:500}.btn{cursor:pointer;text-align:center;text-wrap:balance;border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:color-mix(in oklch, var(--accent) 86%, var(--ink))}.btn.primary:disabled{opacity:.55;cursor:progress}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}.btn.ghost:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}.btn.wide{border-radius:16px;width:100%;padding:18px 22px;font-size:18px}.link-btn{color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:18px;padding:0;text-decoration:underline}.link-btn:hover{color:var(--ink)}.spinner{border:2.5px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.result{grid-template-columns:minmax(340px,.9fr) minmax(0,1.5fr);align-items:start;gap:20px;padding-bottom:48px;display:grid}.result.single{grid-template-columns:minmax(0,1fr);max-width:860px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:28px;min-width:0;padding:24px;container-type:inline-size}.track-head{align-items:center;gap:16px;margin-bottom:22px;display:flex}.track-head img,.thumb{aspect-ratio:4/3;object-fit:cover;background:var(--line);border-radius:14px;flex:none;width:112px;height:auto}.track-head>div{min-width:0}.track-head h2{overflow-wrap:anywhere;font:700 19px/1.25 var(--display);letter-spacing:-.01em;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 6px;display:-webkit-box;overflow:hidden}.sub{overflow-wrap:anywhere;color:var(--muted);margin:0;font-size:14.5px}.stage{gap:8px;margin:0 0 22px;padding:0;list-style:none;display:grid}.stage li{color:var(--muted);gap:6px;padding-left:22px;font-size:15px;display:grid;position:relative}.stage li:before{content:"";border:2px solid var(--line);border-radius:50%;width:10px;height:10px;position:absolute;top:7px;left:0}.stage li.now{color:var(--ink);font-weight:500}.stage li.now:before{border-color:var(--accent);animation:1s ease-in-out infinite blink}.stage li.done:before{background:var(--accent);border-color:var(--accent)}@keyframes blink{50%{opacity:.3}}.bar{background:var(--line);border-radius:6px;width:100%;height:6px;display:block;overflow:hidden}.bar>span{background:var(--accent);height:100%;transition:width .4s;display:block}.error-box{background:color-mix(in oklch, var(--danger) 10%, transparent);color:var(--danger);border-radius:16px;padding:16px;font-weight:500}.error-box p{margin:0 0 12px}.quality{border:0;margin:0 0 18px;padding:0}.quality legend{margin-bottom:10px;padding:0;font-weight:600}.q-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:10px;display:grid}.q-grid label{border:1.5px solid var(--line);cursor:pointer;border-radius:14px;justify-items:start;padding:10px 10px 9px;transition:border-color .15s;display:grid;position:relative}.q-grid label:hover{border-color:var(--muted)}.q-grid label.on{border-color:var(--accent);background:color-mix(in oklch, var(--accent) 9%, transparent)}.q-grid label:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.q-grid input{opacity:0;position:absolute}.q-br{font:700 24px/1.1 var(--display);letter-spacing:-.02em}.q-unit,.q-size{color:var(--muted);white-space:nowrap;font-size:12px}@container (width<=340px){.q-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.track-head img,.thumb{width:88px}.track-head h2{font-size:16px}}.dl{text-align:center;gap:8px;display:grid}.analysis-grid{grid-template-columns:minmax(0,250px) minmax(0,1fr);align-items:center;gap:24px;display:grid}@container (width<=579px){.analysis-grid{grid-template-columns:minmax(0,1fr)}.analysis-grid .wheel{max-width:280px}}.wheel{width:100%;max-width:300px;margin:0 auto;display:block}.seg path{fill:oklch(var(--seg-off-l) var(--seg-off-c) calc(var(--h) * 1deg));transform-origin:150px 150px;transition:fill .25s,transform .25s}.seg text{text-anchor:middle;dominant-baseline:middle;pointer-events:none;fill:var(--muted)}.seg .code{font:600 11px var(--body)}.seg .name{font:500 9px var(--body);opacity:.8}.seg.near path{fill:oklch(var(--seg-near-l) .09 calc(var(--h) * 1deg))}.seg.near text{fill:var(--ink)}.seg.on path{fill:oklch(var(--seg-on-l) .19 calc(var(--h) * 1deg));transform:scale(1.045)}.seg.on text{fill:#fff}.seg:hover path{filter:brightness(.94)}.hub-code{font:900 34px var(--display);text-anchor:middle;fill:var(--ink);letter-spacing:-.03em}.hub-name{font:500 13px var(--body);text-anchor:middle;fill:var(--muted)}.readout{gap:20px;min-width:0;display:grid}.bpm-line{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.bpm-value{font:900 clamp(52px, 16cqi, 92px) / .9 var(--display);letter-spacing:-.05em;font-variant-numeric:tabular-nums}.bpm-unit{font:700 18px var(--display);color:var(--muted)}.pulse{background:var(--accent);border-radius:50%;flex:none;align-self:center;width:16px;height:16px;animation:linear infinite beat}@keyframes beat{0%{opacity:1;transform:scale(1.25)}35%{opacity:.45;transform:scale(.8)}to{opacity:.45;transform:scale(.8)}}.bpm-block .sub{max-width:44ch;margin-top:10px}.facts{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:14px 18px;margin:0;padding-top:18px;display:grid}.facts dt{color:var(--muted);font-size:13.5px}.facts dd{overflow-wrap:anywhere;margin:2px 0 0;font-weight:500}.facts dd.big{white-space:nowrap;font:700 20px/1.2 var(--display);letter-spacing:-.02em}.facts .wide{grid-column:1/-1}.meters{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px 18px;display:grid;margin-top:6px!important}.meter{white-space:nowrap;align-items:center;gap:10px;font-size:14px;display:flex}.meter-label{flex:none;width:92px}.meter-pct{text-align:right;width:3.2em;color:var(--muted);font-variant-numeric:tabular-nums}.meter-bar{background:var(--line);border-radius:5px;flex:1;min-width:40px;height:5px;overflow:hidden}.meter-bar>span{background:var(--ink);height:100%;display:block}.readout .btn{justify-self:start;max-width:100%}.analysis-note{color:var(--muted);margin:12px 0 0}.wheel .spin{transform-origin:150px 150px;animation:6s linear infinite turn}@keyframes turn{to{transform:rotate(1turn)}}.skeleton{color:#0000;background:linear-gradient(90deg, var(--line) 0 40%, color-mix(in oklch, var(--line), var(--surface) 55%) 50%, var(--line) 60% 100%);background-size:300% 100%;border-radius:12px;animation:1.4s linear infinite shimmer}.skeleton.line{height:18px;margin-bottom:10px}.skeleton.line.short{width:50%}.bpm-value.skeleton{font-size:64px;display:inline-block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.drop{text-align:center;border:2px dashed var(--muted);background:var(--surface);cursor:pointer;border-radius:28px;justify-items:center;gap:8px;max-width:820px;padding:56px 24px;transition:border-color .15s,background .15s;display:grid}.drop:hover,.drop.over{border-color:var(--accent);background:color-mix(in oklch, var(--accent) 7%, var(--surface))}.drop strong{font:700 20px/1.3 var(--display);letter-spacing:-.01em;overflow-wrap:anywhere;max-width:100%}.drop strong.file-name{font:600 16px/1.4 var(--body)}.drop .bar{max-width:320px;margin-top:8px}.foot{color:var(--muted);padding:28px 0 36px;font-size:14px}.foot p{max-width:70ch;margin:0}@media (width<=960px){.result{grid-template-columns:minmax(0,1fr)}}@media (width<=620px){.page{padding:0 16px}.hero{padding-top:5vh}.url-form{border-radius:18px;flex-wrap:wrap}.url-form input{flex-basis:100%;font-size:17px}.url-form .btn{flex:1}.panel{border-radius:22px;padding:18px}.analysis{grid-template-columns:minmax(0,1fr)}.q-grid{grid-template-columns:repeat(2,1fr)}.tabs{width:100%}.tabs button{flex:1;padding:8px 10px}}@media (width<=380px){.tabs button{padding:8px 6px;font-size:14px}.hero h1{font-size:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
