@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--ink:#171717;--muted:#655f59;--paper:#f7f4ef;--pink:#b92460;--line:#ded8d0;--soft:#fffaf4}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:DM Sans,sans-serif}body{min-width:320px;margin:0}a{color:inherit;text-underline-offset:4px}:focus-visible{outline:3px solid var(--pink);outline-offset:4px}.skip-link{z-index:10;background:var(--soft);padding:12px;position:absolute;top:-100px;left:16px}.skip-link:focus{top:12px}main{max-width:1180px;margin:auto;padding:32px 5vw 80px}.eyebrow{color:var(--pink);letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;font-weight:700}h1,h2,h3{letter-spacing:-.045em;font-family:Space Grotesk,sans-serif}h1{margin:16px 0;font-size:clamp(2.7rem,7vw,5.2rem);line-height:1}h1 span{color:var(--pink)}h2{margin:10px 0;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.1}h3{margin:0 0 10px;font-size:1.15rem}p{color:var(--muted);line-height:1.65}.hero{max-width:760px;margin-bottom:32px}.hero p{font-size:1.08rem}.privacy-note{border-left:3px solid var(--pink);padding-left:12px;font-size:.82rem;display:inline-block}.input-panel,.comparison,.readouts{background:var(--soft);border:1px solid var(--line);padding:clamp(18px,3vw,30px)}.input-panel p{margin:12px 0}.controls,.record-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}button,.file-button{border:1px solid var(--ink);min-height:46px;color:var(--ink);cursor:pointer;background:0 0;border-radius:3px;padding:12px 17px;font:600 .92rem DM Sans,sans-serif}button:hover:not(:disabled),.file-button:hover{background:#eee7df}button.primary{background:var(--ink);color:#fff}button.primary:hover:not(:disabled){background:var(--pink)}button:disabled{opacity:.48;cursor:not-allowed}.file-button{position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.file-button:focus-within{outline:3px solid var(--pink);outline-offset:4px}.file-button:has(input:disabled){opacity:.48;cursor:not-allowed}.small,small{color:var(--muted);font-size:.83rem;line-height:1.6}#analyzer-status{color:var(--ink);border-top:1px solid var(--line);padding-top:14px;font-weight:600}#analyzer-error,.notice{color:#8e1630;background:#fce8e8;border-left:3px solid #a21d37;padding:12px 16px}#playback-panel{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}audio{width:100%;margin:10px 0;display:block}details{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}summary{cursor:pointer;padding:8px 0;font-weight:600}details label{margin:12px 0 6px;display:block}select{max-width:100%;min-height:44px;font:inherit;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:8px}.measurement-heading{justify-content:space-between;align-items:center;gap:16px;margin:38px 0 20px;display:flex}.source-tag{overflow-wrap:anywhere;background:#eae4db;max-width:42%;padding:8px 12px;font-size:.8rem}.metrics{border:1px solid var(--line);background:var(--soft);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.metrics>div{padding:20px}.metrics>div+div{border-left:1px solid var(--line)}.metrics span,.metrics small{font-size:.8rem;display:block}.metrics strong{margin:10px 0;font:600 clamp(1.5rem,3vw,2.25rem) Space Grotesk,sans-serif;display:block}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.chart{color:#f2f1f0;background:#191e25;border-radius:4px;min-width:0;margin:0;padding:18px 14px 10px}.chart figcaption{padding:0 6px 8px}.chart figcaption span{color:#c6c9ce;font-size:.78rem}.chart h3{margin-bottom:4px}.chart .small{color:#c6c9ce;margin:10px 6px}.chart.wide{grid-column:1/-1}canvas{width:100%;height:220px;display:block}.wide canvas{height:260px}.legend{justify-content:center;align-items:center;gap:12px;padding-top:5px;font-size:.75rem;display:flex}.color-scale{background:linear-gradient(90deg,#191e25,#8c4c89,#ffd725);width:120px;height:9px}.readouts{grid-template-columns:1fr 1fr;gap:30px;margin-top:16px;display:grid}.readouts ol,.readouts ul{font-variant-numeric:tabular-nums;padding-left:22px;font-size:.9rem}.readouts li{padding:5px 0}.comparison{margin-top:32px}.comparison canvas{border-radius:4px}.key-a{color:#ae2057;font-weight:700}.key-b{color:#086879;font-weight:700}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;margin-top:16px;font-size:.85rem}caption{text-align:left;padding-bottom:10px;font-weight:700}th,td{text-align:left;border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:12px 8px}.guide{max-width:850px;margin-top:50px}.guide h3{margin-top:24px}.tool-card{border:1px solid var(--line);background:var(--soft);max-width:720px;margin:32px 0;padding:28px;text-decoration:none;display:block}.tool-card strong{color:var(--pink)}[hidden]{display:none!important}.engine-page{padding-bottom:95px}.measurement-quality{border-bottom:1px solid var(--line);margin-bottom:24px;padding-bottom:24px}.measurement-quality input,.measurement-quality textarea,.validation-workbench textarea{width:100%;min-width:0;font:inherit;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px}.measurement-quality label,.validation-workbench label{margin:14px 0 8px;font-size:.9rem;display:block}.measurement-quality input{min-height:46px}.measurement-fields,.validation-checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.validation-checks select{width:100%;margin-top:8px;display:block}.measurement-quality li,#comparison-quality li{overflow-wrap:anywhere;padding-bottom:8px;font-size:.88rem;line-height:1.6}.measurement-quality h3,.export-controls{margin-top:20px}.validation-workbench{border:1px solid var(--line);background:var(--soft);padding:24px}.validation-workbench select{margin-bottom:16px}.hero-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.tool-share{align-items:center;gap:10px;min-height:46px;display:flex}.share-tool-button{border-color:var(--pink);min-height:44px;color:var(--pink);padding:10px 15px}.share-tool-button:hover:not(:disabled){background:#f8e7ed}.tool-share-status{color:var(--muted);font-size:.86rem}.input-panel{padding:clamp(18px,2.5vw,28px)}.input-panel>div:first-child>p{max-width:42rem}.input-panel .file-note{margin:9px 0}.controls #stop-analysis:disabled{display:none}#analyzer-status{background:#f2eee8;border-top:0;border-left:3px solid #8c857d;margin:16px 0 8px;padding:12px 14px}.workbench[data-state=requesting] #analyzer-status,.workbench[data-state=loading] #analyzer-status{border-left-color:#9b630e}.workbench[data-state=live] #analyzer-status{border-left-color:var(--pink);background:#f8e7ed}.recording-details{margin-top:10px}.record-controls,.recording-details>p{margin:8px 0}.technical-details{margin-top:8px}.technical-details p{max-width:72ch}.engine-settings,.engine-observations{margin-top:14px}details.engine-settings{padding:0}.engine-settings>summary{padding:16px 18px}.engine-settings>summary span{color:var(--muted);margin-top:4px;font-size:.86rem;font-weight:400;display:block}.engine-settings-content{padding:0 18px 18px}.engine-page .engine-toolbar{display:none}.chart,.chart canvas{min-width:0;max-width:100%}@media (width<=700px){main{padding:18px 16px 48px}.hero{margin-bottom:18px}.hero p{margin:12px 0;font-size:1rem}h1{margin:12px 0}.hero-actions{align-items:flex-start;gap:10px}.privacy-note{max-width:100%}.tool-share{width:100%}.tool-share-status{min-height:1.35em}.input-panel,.comparison,.readouts{padding:16px 14px}.input-panel>div:first-child>p{margin:8px 0 14px}.controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.controls>button,.controls>.file-button{width:100%;min-width:0;min-height:50px;padding:10px 8px;font-size:.88rem;line-height:1.25}.controls #stop-analysis:not(:disabled){grid-column:1/-1}.measurement-heading{margin:26px 0 14px}.metrics>div{padding:12px 14px}.chart-grid,.readouts{gap:12px}.chart{padding:14px 8px 8px}canvas{height:205px}.wide canvas{height:220px}.comparison{margin-top:20px}.engine-settings,.engine-observations{padding:0}.engine-settings-content{padding:0 14px 14px}.engine-settings>summary{padding:14px}.engine-page{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.engine-page .controls #start-mic,.engine-page .controls #stop-analysis{display:none}.engine-page .engine-toolbar{bottom:calc(8px + env(safe-area-inset-bottom));z-index:10;background:var(--soft);border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:min(440px,100% - 24px);padding:6px;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #17171724}.engine-toolbar button{min-width:0;min-height:48px;padding:9px 5px;font-size:.84rem;line-height:1.2}.engine-toolbar button:disabled{display:none}.engine-toolbar:not(:has(#engine-capture-a:not(:disabled))) #engine-live-toggle{grid-column:1/-1}}@media (width<=360px){main,.input-panel,.comparison,.readouts{padding-left:12px;padding-right:12px}.controls>button,.controls>.file-button{font-size:.84rem}.chart figcaption span{font-size:.72rem}}@media (height<=520px) and (orientation:landscape){main{padding-top:14px}.hero{margin-bottom:14px}h1{font-size:clamp(2.4rem,6vw,3.6rem)}.engine-page{padding-bottom:calc(86px + env(safe-area-inset-bottom))}}@media (width<=700px){.measurement-fields,.validation-checks{grid-template-columns:1fr}.validation-workbench{padding:18px 12px}}.engine-settings,.engine-observations{border:1px solid var(--line);background:var(--soft);margin-top:20px;padding:clamp(18px,3vw,30px)}.engine-settings h2{font-size:1.55rem}.engine-settings label{margin-bottom:7px;font-size:.9rem;font-weight:600;display:block}.engine-settings label span{color:var(--muted);font-weight:400}.engine-settings input{background:var(--paper);border:1px solid var(--line);width:100%;min-width:0;min-height:46px;font:inherit;color:var(--ink);border-radius:3px;padding:11px}.engine-settings input[aria-invalid=true]{border-color:#a21d37}.reference-input{max-width:300px}.engine-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.engine-fields select{width:100%}.reference-list{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:8px 20px;padding:0;font-size:.84rem;list-style:none;display:flex}.reference-list li{border-left:3px solid #9b630e;padding:5px 9px}.engine-analysis-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:26px;display:grid}.engine-analysis-grid section{min-width:0}#persistent-peaks{padding-left:20px;font-size:.88rem;line-height:1.7}#persistent-peaks li{padding-bottom:10px}#engine-comparison-table{table-layout:fixed}.engine-toolbar{z-index:10;background:var(--soft);border:1px solid var(--line);border-radius:6px;grid-template-columns:1.2fr 1fr 1fr;gap:8px;width:min(540px,100% - 24px);padding:8px;display:grid;position:fixed;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #17171724}.engine-toolbar button{min-height:48px;padding:12px 6px;font-size:.86rem}@media (width<=700px){.engine-fields,.engine-analysis-grid{grid-template-columns:1fr}.engine-settings,.engine-observations{padding:18px 12px}.engine-analysis-grid{gap:28px}#harmonic-table{font-size:.78rem}.engine-toolbar{bottom:max(8px,env(safe-area-inset-bottom))}main{padding:22px 6vw 60px}.chart-grid,.readouts,.metrics{grid-template-columns:1fr}.metrics>div{padding:15px 18px}.metrics>div+div{border-left:0;border-top:1px solid var(--line)}.metrics strong{margin:5px 0}.controls{gap:10px}.controls>button,.controls>.file-button{text-align:center;flex:130px}.measurement-heading{flex-direction:column;align-items:flex-start}.source-tag{max-width:100%}.chart{padding:16px 8px 10px}canvas{height:215px}.wide canvas{height:235px}.comparison{padding:18px 12px}.legend{gap:8px}.color-scale{width:70px}}.observation-attachment{border:1px solid var(--line);overflow-wrap:anywhere;margin-top:24px;padding:16px}.observation-attachment [hidden]{display:none!important}.observation-attachment input,.observation-attachment textarea,.observation-attachment select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:44px}.observation-attachment label{margin:12px 0;display:block}.observation-attachment fieldset{min-width:0;margin:12px 0}.observation-attachment button{min-height:44px}#observation-preview{font-size:.9rem;line-height:1.65}
