/* Echotrace — spectral, shared interface. System fonts, no UI dependencies. */
:root{--bg:#090e19;--panel:#111a2b;--panel-soft:#111a2b;--text:#edf0fa;--muted:#a4afc8;--dim:#8e9bb7;--line:#24314a;--line-strong:#354563;--lime:#9aafff;--lime-dark:#1a2540;--blue:#79cfef;--amber:#e6bd78;--font:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:'SFMono-Regular',Consolas,monospace;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.65 var(--font);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration:none}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--lime);outline-offset:4px}::selection{background:#334881;color:#edf0ff}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:550;line-height:1.15;letter-spacing:-.04em}h1{font-size:clamp(40px,5vw,68px)}h2{font-size:32px}h3{font-size:20px;letter-spacing:-.025em}em{font-style:normal;color:var(--lime)}p{color:var(--muted)}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.page-width{width:min(1120px,calc(100% - 64px));margin-inline:auto}.mono{font-family:var(--mono)}.small-print,.muted,.dim{color:var(--muted)}.small-print{font-size:13px;line-height:1.7}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;border:1px solid transparent;border-radius:9px;font-size:14px;font-weight:550;line-height:1.5;transition:background .15s}.btn-primary{background:var(--lime);color:#111a2b}.btn-primary:hover:not(:disabled){background:#b4c3ff}.btn-secondary{background:#111a2b;border-color:var(--line-strong)}.btn-secondary:hover{background:#1c2944}.btn-large{padding:15px 22px}.btn-small{padding:10px 14px;font-size:13px}.btn-full{width:100%}.btn .icon{width:17px;height:17px}.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--lime);font-size:14px;background:none;border:0;padding:0}.text-link:hover,a:hover{text-decoration:underline;text-underline-offset:4px}.text-link .icon{width:15px}.text-button{border:0;background:none;padding:0;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:3px}.pill{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border-radius:6px;background:#1b2945;color:var(--lime);font-size:12px;white-space:nowrap}.pill.amber{background:#302619;color:var(--amber)}.pill .icon{width:14px;height:14px}.status-dot{width:6px;height:6px;background:var(--lime);border-radius:50%}
.site-header{height:80px;position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line);background:#090e19f2;backdrop-filter:blur(12px)}.header-inner{height:100%;width:min(1200px,calc(100% - 64px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{display:inline-flex;gap:10px;align-items:center;font-size:24px;font-weight:650;letter-spacing:-1px;line-height:1}.logo:hover{text-decoration:none}.logo-symbol{display:flex;gap:3px;align-items:center;height:28px}.logo-symbol i{height:13px;width:3px;background:var(--lime);border-radius:3px}.logo-symbol i:nth-child(2),.logo-symbol i:nth-child(4){height:21px}.logo-symbol i:nth-child(3){height:28px}.logo-dot{display:none}.site-header nav,.site-footer nav{display:flex;gap:26px;align-items:center}.site-header nav a,.site-header nav button{border:0;background:none;padding:0;color:var(--muted);font-size:13px}.site-header nav button:hover{color:var(--text)}.site-footer{width:min(1120px,calc(100% - 64px));margin:70px auto 0;border-top:1px solid var(--line);padding:32px 0;display:flex;justify-content:space-between;align-items:center;gap:24px}.site-footer .logo{font-size:21px}.site-footer nav{font-size:13px;color:var(--muted)}
.hero{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:60px;padding-block:100px 90px}.hero h1{font-size:clamp(60px,7vw,88px);line-height:1.04;letter-spacing:-.055em}.hero-description{font-size:18px;line-height:1.75;max-width:440px;margin-top:25px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero-trust{display:flex;align-items:center;gap:7px;font-size:13px;margin-top:20px}.hero-trust .icon{width:15px;height:15px}.sound-art{height:340px;position:relative;display:grid;place-items:center;border-radius:50%;background:radial-gradient(ellipse,#253b68 0,transparent 69%)}.sound-art-ring{position:absolute;width:270px;height:270px;border:1px solid #30436a;border-radius:50%}.sound-art-ring:after{content:'';position:absolute;inset:30px;border:1px solid #30436a;border-radius:50%}.sound-bars{display:flex;align-items:center;gap:5px;position:relative}.sound-bars i{display:block;width:4px;border-radius:4px;background:var(--lime);opacity:.8}.how-section{padding:45px 0 65px;border-top:1px solid var(--line)}.how-section>h2{font-size:28px;margin-bottom:28px}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.step-card{border:1px solid var(--line);background:#111a2b;border-radius:12px;padding:26px}.step-card>.icon{color:var(--lime);width:24px;height:24px;margin-bottom:22px}.step-card h3{font-size:19px;margin-bottom:12px}.step-card p{font-size:14px;line-height:1.75}.method-note{margin-top:25px;font-size:13px;max-width:760px;line-height:1.8}.method-note a{color:var(--lime);white-space:nowrap}.method-note .icon{width:14px;height:14px}.faq-section{display:grid;grid-template-columns:1fr 2fr;gap:60px;padding-block:35px}.faq-section>h2{font-size:28px}.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}.faq-list details:first-child{padding-top:0}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:20px;font-weight:500}.faq-list summary .icon{width:16px;color:var(--muted)}.faq-list details[open] summary .icon{transform:rotate(45deg)}.faq-list details p{font-size:14px;line-height:1.85;margin-top:14px;max-width:630px}
.lab-page{padding-block:45px 70px}.lab-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}.lab-title h1{font-size:38px}.lab-empty{max-width:620px;margin:30px auto 80px;text-align:center}.lab-empty h1{font-size:40px;margin-bottom:30px}.dropzone{background:#111a2b;border:1px dashed #435788;border-radius:14px;padding:55px 24px;cursor:pointer}.dropzone:hover{background:#18243c;border-color:var(--lime)}.dropzone>.icon{width:30px;height:30px;color:var(--lime);margin-bottom:20px}.dropzone h3{font-size:23px}.dropzone p{font-size:14px;margin-top:10px}.dropzone small{display:block;color:var(--muted);font-size:12px;margin-top:25px}.empty-actions{margin-top:22px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px;color:var(--muted)}.empty-actions>span{display:flex;align-items:center;gap:6px}.empty-actions .icon{width:15px;height:15px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:15px 18px;font-size:13px;font-weight:550}.panel-heading .small-print{font-size:12px;font-weight:400}.analysis-grid{display:grid;grid-template-columns:.9fr 1.4fr;gap:22px}.video-frame{height:240px;background:#080d17}.video-frame video{width:100%;height:100%;display:block;object-fit:contain}.audio-frame{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.audio-frame>.icon{width:40px;height:40px;color:var(--lime)}.audio-frame audio{width:90%}.file-info{display:flex;align-items:center;gap:12px;padding:17px}.file-info>div{min-width:0;flex:1}.file-info strong{font-size:13px;font-weight:500;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.file-info small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.file-icon{color:var(--muted)}.icon-button{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border:1px solid var(--line);border-radius:7px;background:#111a2b;color:var(--muted)}.icon-button .icon{width:16px;height:16px}.signal-panel{display:flex;flex-direction:column}.lab-spectrum{height:240px;position:relative;background:#111a2b}.lab-spectrum canvas{display:block;width:100%;height:100%}.spectrum-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:25px;background:#111a2b;text-align:center}.spectrum-placeholder strong{font-size:14px}.spectrum-placeholder>span{font-size:12px;color:var(--muted)}.signal-legend{display:flex;flex-wrap:wrap;gap:14px;padding:10px 16px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}.signal-legend>span{display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime)}.track-1{background:var(--blue)}.track-2{background:#d58bea}.waveform-strip{height:49px;padding:8px 16px;margin-top:auto}.waveform-strip canvas{display:block;width:100%;height:32px}.processing-panel{padding:18px;background:#111a2b;border:1px solid var(--line);border-radius:10px;margin-bottom:22px}.processing-title{display:flex;align-items:center;gap:10px;font-size:13px}.processing-title strong{font-weight:450;flex:1}.processing-title>span:last-of-type{color:var(--muted)}.progress-track{height:3px;margin-top:14px;background:#263451;border-radius:5px;overflow:hidden}.progress-track i{display:block;height:100%;background:var(--lime);transition:width .2s}.spinner,.signal-loader{display:block;width:15px;height:15px;border:2px solid #354563;border-top-color:var(--lime);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}
.search-section,.results-section{margin-top:50px;scroll-margin-top:100px}.section-heading.compact{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px}.section-heading.compact h2{font-size:30px}.section-heading.compact p{font-size:14px;max-width:650px;margin-top:10px}.search-form{display:grid;grid-template-columns:1.6fr 1fr;background:#111a2b;border:1px solid var(--line);border-radius:12px;overflow:hidden}.form-main{padding:26px;border-right:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid.three{grid-template-columns:repeat(3,1fr);gap:12px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field>span{font-size:13px;font-weight:500}.field input,.field select{width:100%;min-height:44px;background:#111a2b;border:1px solid var(--line-strong);border-radius:7px;padding:10px 11px;font-size:14px;color:var(--text)}.field small{color:var(--muted);font-size:12px;line-height:1.6}.region-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:25px 0 16px}.region-title strong{font-size:13px;font-weight:500}.preset-chips{display:flex;gap:5px}.preset-chips button{background:#17233a;border:1px solid var(--line);border-radius:5px;padding:5px 8px;font-size:12px}.preset-chips button:hover{background:#243555}.advanced{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.advanced summary{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.advanced summary .icon{width:15px;height:15px}.advanced summary>.icon:last-child{margin-left:auto}.advanced[open] summary{margin-bottom:20px}.advanced .small-print{font-size:12px;margin-top:14px}.data-sidebar{padding:26px;background:#0c1424}.data-source-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.data-source-heading>.icon{color:var(--lime)}.data-source-heading strong{display:block;font-weight:550;font-size:16px}.data-source-heading span{display:block;color:var(--muted);font-size:12px}.data-sidebar>p{font-size:14px;margin-bottom:22px}.dataset-loaded{font-size:13px;margin-bottom:24px}.dataset-loaded p{margin-top:12px}.dataset-loaded small{display:block;color:var(--muted);margin-top:5px}.dataset-loaded .text-button{margin-top:12px}.checkbox-field{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.7;margin-block:20px;color:var(--muted)}input[type=checkbox]{accent-color:var(--lime);width:16px;height:16px;flex-shrink:0;margin-top:3px}.checkbox-field small{display:block;font-size:12px}.data-sidebar>.btn{margin-top:8px}.error-box{display:flex;align-items:flex-start;gap:12px;border:1px solid #695030;background:#2b2219;padding:20px;border-radius:10px;margin-top:24px}.error-box>.icon{color:#e6bd78;margin-top:3px}.error-box p{margin-top:8px;font-size:14px}.error-box .btn{margin-top:14px}
.result-status{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;background:#14283a;border:1px solid #2b485f;border-radius:9px;font-size:13px;color:#b8d9ed;margin-bottom:22px}.result-status>.icon{width:18px;margin-top:2px}.result-status.warning{background:#2b231c;border-color:#695030;color:#e6bd78}.result-metrics{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;background:#111a2b;margin-bottom:24px}.result-metrics>div{padding:22px 24px}.result-metrics>div+div{border-left:1px solid var(--line)}.result-metrics span{display:block;font-size:13px;color:var(--muted)}.result-metrics strong{display:block;font-size:34px;font-weight:500;margin-block:5px;letter-spacing:-.04em}.result-metrics small{font-size:17px;margin-left:5px;color:var(--muted)}.result-metrics p{font-size:12px}.result-workspace{display:grid;grid-template-columns:1.8fr 1fr;background:#111a2b;border:1px solid var(--line);border-radius:12px;overflow:hidden}.result-map{min-height:480px;position:relative;min-width:0;overflow:hidden;background:#0c1423;isolation:isolate}.candidate-sidebar{border-left:1px solid var(--line)}.candidate-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:18px 16px;border:0;border-bottom:1px solid var(--line);background:#111a2b}.candidate-card:hover{background:#19273f}.candidate-card.selected{background:#1e2e50;box-shadow:inset 3px 0 var(--lime)}.candidate-index{font-size:12px;color:var(--lime)}.candidate-content{flex:1;min-width:0}.candidate-content strong{display:block;font-size:13px;font-weight:550}.candidate-content>.mono{display:block;font-size:11px;margin-block:6px}.candidate-content small{display:block;font-size:11px;color:var(--muted)}.candidate-card>.icon{width:13px;height:13px;color:var(--muted)}.empty-candidates{padding:22px;font-size:13px;color:var(--muted)}.time-box{padding:20px 16px}.time-box>span{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}.time-box .icon{width:14px;height:14px}.time-box strong{display:block;font-size:13px;font-weight:500;margin-top:10px}.time-box small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.result-detail-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:22px;margin-top:24px}.fit-panel>canvas{display:block;width:100%;height:280px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:14px 16px;border-top:1px solid var(--line);text-align:left}th{font-weight:500;color:var(--muted);font-size:11px}td small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.interpretation{padding:25px}.interpretation h3{font-size:22px;margin-bottom:16px}.interpretation p{font-size:14px;line-height:1.85;margin-bottom:20px}.source-credit{margin-top:26px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.warnings-box{border:1px solid var(--line);border-radius:10px;padding:18px 20px;background:#111a2b;margin-top:24px;font-size:13px}.warnings-box summary{display:flex;align-items:center;gap:9px}.warnings-box summary>.icon:last-child{margin-left:auto}.warnings-box summary>.icon{width:16px}.warnings-box ul{padding-left:20px;color:var(--muted);line-height:1.9}.warnings-box>p{font-size:12px;margin-top:18px}.result-actions{display:flex;gap:12px;margin-top:24px}
.search-map{height:340px;margin-top:20px;border:1px solid var(--line);border-radius:9px;position:relative;overflow:hidden;isolation:isolate;background:#0c1423}.geo-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;cursor:grab;touch-action:none}.geo-canvas:active{cursor:grabbing}.geo-canvas:focus-visible{outline-offset:-3px}.map-tiles{position:absolute;inset:0;z-index:0;pointer-events:none}.map-tiles img{position:absolute;width:256px;height:256px}.map-controls{position:absolute;top:14px;right:14px;z-index:3;display:flex;flex-direction:column;gap:5px}.map-controls button{width:35px;height:35px;display:grid;place-items:center;background:#111a2b;border:1px solid #354563;border-radius:6px;color:var(--text);box-shadow:0 2px 5px #00000030}.map-controls button:hover{background:#243555}.map-controls .icon{width:16px;height:16px}.map-bottom{position:absolute;bottom:9px;left:10px;right:10px;z-index:3;display:flex;justify-content:space-between;align-items:end;gap:8px;flex-wrap:wrap}.tile-toggle{display:flex;gap:5px;align-items:center;background:#111a2bf5;border:1px solid #354563;padding:5px 7px;border-radius:4px;font-size:11px;color:#d9e0f1;cursor:pointer}.tile-toggle input{width:13px;height:13px;margin:0}.map-attribution{padding:3px 6px;background:#111a2bed;font-size:10px;border-radius:3px;color:#d9e0f1}.map-attribution a{text-decoration:underline}.map-help{font-size:12px;margin-top:10px;color:var(--muted)}.map-load-error{position:absolute;z-index:3;top:15px;left:12px;right:65px;padding:10px;background:#2b231c;border:1px solid #695030;border-radius:6px;font-size:12px;color:#e6bd78;pointer-events:none}
.docs-page{padding-block:40px 60px}.back-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);margin-bottom:30px}.back-link .icon{width:15px;height:15px}.docs-page>h1{font-size:44px;margin-bottom:50px}.docs-layout{display:grid;grid-template-columns:190px 1fr;gap:65px;max-width:1000px}.docs-layout>aside{position:sticky;top:110px;align-self:start}.prose h2{font-size:26px;margin:35px 0 16px}.prose h2:first-child{margin-top:0}.prose h3{font-size:20px;margin:24px 0 12px}.prose p{font-size:15px;line-height:1.9;margin-bottom:16px}.prose code{font:13px var(--mono);overflow-wrap:anywhere}.prose strong{font-weight:550;color:var(--text)}.formula{padding:24px;background:#14223a;border:1px solid #33466c;border-radius:9px;font:14px/1.7 var(--mono);color:var(--lime);margin:24px 0;overflow-x:auto}.formula sub{font-size:10px}.source-links{display:flex;flex-direction:column;gap:10px;margin-block:22px}.source-links a{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:13px;color:var(--lime);border:1px solid var(--line);border-radius:7px;background:#111a2b;padding:13px}.source-links .icon{width:14px;height:14px}.prose .small-print{font-size:12px}
.skip-link{position:fixed;top:-70px;left:15px;background:var(--lime);color:#111a2b;padding:10px 16px;z-index:1000;border-radius:6px;font-size:14px}.skip-link:focus{top:15px}.boot-message{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:20px;color:var(--lime)}.boot-message span{font-size:14px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,10px);background:#111a2b;border:1px solid var(--line-strong);box-shadow:0 8px 35px #00000040;border-radius:9px;padding:14px 20px;z-index:100;max-width:min(530px,calc(100% - 32px));font-size:13px;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.drop-overlay{display:none;position:fixed;inset:15px;align-items:center;justify-content:center;z-index:1000;background:#111b30f5;border:2px dashed var(--lime);border-radius:15px;font-size:24px;color:var(--lime);pointer-events:none;padding:25px;text-align:center}.file-drag .drop-overlay{display:flex}.noscript{position:fixed;inset:0;display:grid;place-items:center;padding:40px;background:var(--bg);z-index:999}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:950px){.hero{gap:25px}.hero h1{font-size:65px}.sound-bars{gap:4px}.sound-bars i{width:3px}.sound-art{height:300px}.sound-art-ring{width:230px;height:230px}.analysis-grid{grid-template-columns:1fr 1.3fr}.form-grid.three{grid-template-columns:1fr 1fr}.form-grid.three>.field:last-child{grid-column:1/-1}.search-form{grid-template-columns:1fr}.form-main{border-right:0;border-bottom:1px solid var(--line)}.result-workspace{grid-template-columns:1.6fr 1fr}.result-detail-grid{grid-template-columns:1fr}.docs-layout{gap:35px;grid-template-columns:160px 1fr}}
@media(max-width:650px){.page-width,.header-inner,.site-footer{width:calc(100% - 36px)}.site-header{height:68px}.site-header nav{display:none}.logo{font-size:22px}.header-inner{gap:12px}.header-inner>.btn{font-size:12px;padding:9px 12px}.hero{grid-template-columns:1fr;padding-block:55px 35px;gap:15px}.hero h1{font-size:64px}.hero-description{font-size:16px;max-width:360px;margin-top:22px}.hero-actions{margin-top:25px;gap:9px}.hero-actions .btn{padding:13px 16px;font-size:13px}.hero-trust{font-size:12px}.sound-art{height:190px}.sound-art-ring{height:170px;width:170px}.sound-bars i{max-height:130px}.steps-grid{grid-template-columns:1fr;gap:12px}.step-card{padding:22px}.step-card>.icon{margin-bottom:15px}.step-card h3{font-size:19px}.how-section{padding-block:35px}.how-section>h2,.faq-section>h2{font-size:26px}.faq-section{grid-template-columns:1fr;gap:25px;padding-block:25px}.faq-list summary{font-size:14px}.faq-list details p{font-size:13px}.method-note{font-size:12px}.site-footer{margin-top:40px;padding:26px 0;align-items:start;flex-direction:column;gap:20px}.site-footer nav{gap:23px;font-size:12px}.lab-page{padding-top:28px}.lab-title h1{font-size:30px}.lab-title .pill{font-size:11px}.analysis-grid{grid-template-columns:1fr;gap:18px}.video-frame{height:210px}.lab-spectrum{height:230px}.file-info{padding:14px}.file-info strong{font-size:12px}.processing-title{flex-wrap:wrap;font-size:12px}.processing-title strong{min-width:150px}.lab-empty{margin-block:20px 50px}.lab-empty h1{font-size:34px}.dropzone{padding:40px 20px}.empty-actions{flex-direction:column;gap:15px}.section-heading.compact{align-items:start;flex-direction:column;gap:18px}.section-heading.compact h2{font-size:28px}.section-heading.compact p{font-size:13px}.search-section,.results-section{margin-top:35px;scroll-margin-top:90px}.form-main,.data-sidebar{padding:20px}.form-grid,.form-grid.three{grid-template-columns:1fr;gap:16px}.form-grid.three>.field:last-child{grid-column:auto}.region-title{flex-direction:column;align-items:start;gap:12px}.search-map{height:320px}.result-metrics>div{padding:18px 15px}.result-metrics strong{font-size:29px}.result-metrics span,.result-metrics p{font-size:11px}.result-workspace{grid-template-columns:1fr}.result-map{min-height:390px}.candidate-sidebar{border-left:0;border-top:1px solid var(--line)}.candidate-content>.mono{font-size:12px}.result-status{font-size:12px}.fit-panel .panel-heading{flex-wrap:wrap;gap:5px}.fit-panel>canvas{height:235px}.result-actions{flex-direction:column}.map-attribution{font-size:9px}.tile-toggle{font-size:10px}.map-controls{right:10px;top:10px}.map-help{font-size:11px}.docs-page{padding-top:25px}.docs-page>h1{font-size:35px;margin-bottom:30px}.docs-layout{display:flex;flex-direction:column-reverse;gap:30px}.docs-layout>aside{position:static}.prose h2{font-size:24px}.prose p{font-size:14px}.formula{font-size:12px;padding:18px}.error-box{padding:16px}.error-box p{font-size:13px}th,td{padding:12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html{scroll-behavior:auto}}

/* A small creator credit on every route. */
.analysis-grid{align-items:start}.signal-controls{padding:16px 20px;border-top:1px solid var(--line);font-size:12px;min-width:0}.signal-controls summary{cursor:pointer;font-weight:600;padding:8px 0}.signal-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.signal-fields .field{min-width:0}.signal-fields .field input,.signal-fields .field select{width:100%;min-width:0;padding:8px;font-size:12px}.signal-fields .field span{font-size:11px}.signal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0}.track-list{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.track-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.track-row label{display:flex;align-items:center;gap:10px;flex:1;min-width:0;cursor:pointer}.track-row small{display:block;color:var(--muted);font-size:11px}.track-row .text-button{font-size:12px}.signal-warnings{margin-top:12px}.signal-warnings ul{padding-left:18px;color:var(--muted)}
body{padding-bottom:88px}
.creator-badge{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));z-index:50;display:flex;align-items:center;gap:10px;padding:9px 14px 9px 9px;background:#111a2bf5;border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 4px 20px #00000040;transition:box-shadow .2s,border-color .2s}
.creator-badge:hover,.creator-badge:focus-visible{text-decoration:none;border-color:#839deb;box-shadow:0 6px 24px #00000055}
.creator-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#1e2e50;animation:creator-hop 8s ease-in-out infinite}
.creator-hand{display:block;font-size:25px;line-height:1;transform-origin:72% 78%;animation:creator-wave 8s ease-in-out infinite}
.creator-credit{font-size:11px;line-height:1.5;color:var(--muted)}
.creator-credit strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--text)}
.creator-credit svg{color:var(--lime)}
#toast{bottom:calc(100px + env(safe-area-inset-bottom))}
@keyframes creator-hop{0%,4%,12%,100%{transform:translateY(0)}8%{transform:translateY(-7px)}10%{transform:translateY(-2px)}}
@keyframes creator-wave{0%,12%,36%,100%{transform:rotate(0)}16%,24%,32%{transform:rotate(19deg)}20%,28%{transform:rotate(-10deg)}}
@media(max-width:650px){.creator-badge{right:max(12px,env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));padding:7px 11px 7px 7px;gap:8px}.creator-icon{width:33px;height:33px}.creator-hand{font-size:23px}.creator-credit strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.creator-icon,.creator-hand{animation:none}}

/* Frequency-inspired accents, shared across every page. */
body{background-image:radial-gradient(ellipse at 90% 0,#26387924,transparent 45%)}
.btn-primary,.skip-link{color:#0a1020;background:#9aafff}
.btn-primary:hover:not(:disabled){background:#b5c4ff}
.logo-symbol i:nth-child(2),.logo-symbol i:nth-child(4){background:#b595ee}
.logo-symbol i:nth-child(3){background:#d38be3}
.hero em{background:linear-gradient(110deg,#9ab8ff,#d195ef);background-clip:text;-webkit-background-clip:text;color:transparent}
.step-card{background:linear-gradient(150deg,#142038,#101827)}
.step-card:nth-child(2)>.icon{color:#cb96f2}.step-card:nth-child(3)>.icon{color:#83d4ef}
.spectrum-hero{min-width:0;position:relative;padding:16px;border:1px solid #344465;border-radius:13px;background:#101827;box-shadow:0 24px 75px #00000030}
.spectrum-hero-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;font-size:13px;margin-bottom:16px;color:#d5ddf2}
.spectrum-hero-heading span{font-size:11px;color:var(--muted)}
.spectrum-hero canvas{display:block;width:100%;height:260px;border:1px solid #293752;border-radius:5px}
/* The shared renderer keeps its measurement data; these colors adapt its light palette. */
.lab-spectrum canvas,#result-spectrum,.spectrum-hero canvas{filter:invert(1) hue-rotate(315deg)}
.waveform-strip canvas{filter:brightness(2.5) hue-rotate(135deg)}
.track-0{background:#a5f2bd}.track-1{background:#94d9ff}.track-2{background:#e2a3fa}
.map-tiles{filter:invert(1) hue-rotate(180deg) saturate(.55) brightness(.82)}
.geo-canvas{filter:brightness(2.4) hue-rotate(145deg)}
.creator-badge{background:#111a2bf5}.creator-icon{background:#203052}.creator-credit svg{color:#b0bfff}
@media(max-width:950px){.hero{grid-template-columns:1fr 1fr;gap:28px}.spectrum-hero canvas{height:235px}}
@media(max-width:650px){.hero{grid-template-columns:1fr;gap:35px}.spectrum-hero{padding:12px}.spectrum-hero canvas{height:190px}}

.search-map:has(input[data-map="tiles"]:not(:checked)) .geo-canvas,.result-map:has(input[data-map="tiles"]:not(:checked)) .geo-canvas{filter:invert(1) hue-rotate(180deg)}

.search-coverage{padding:17px 20px;border:1px solid var(--line);background:var(--panel);border-radius:10px;margin-bottom:22px;font-size:13px}
.search-coverage strong{display:block;font-weight:550;margin-bottom:7px;color:var(--text)}
.search-coverage p{font-size:12px;line-height:1.8}.search-coverage p+p{margin-top:4px}

/* Brand: echo rings with a frequency trace. */
.logo{gap:10px;letter-spacing:-.9px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:linear-gradient(135deg,#9aafff12,#d38be30c);border:1px solid #9aafff26;border-radius:13px;color:#adc0ff;flex-shrink:0}
.brand-orbit{color:#8099df}.brand-echo{color:#b394e6}.brand-wave{color:#e4dbff}.brand-word{font-weight:650}.brand-word>span{font-weight:450;color:#b0bdd7}
.logo:hover .brand-mark{border-color:#9aafff70;box-shadow:0 0 22px #9aafff16}.site-footer .brand-mark{width:36px;height:36px}.site-footer .brand-mark svg{width:32px;height:32px}
/* Shared playback cursors stay above canvases, outside their color filters. */
.lab-spectrum,.waveform-strip,.fit-panel{position:relative}.lab-spectrum canvas,.waveform-strip canvas,#result-spectrum{cursor:crosshair;touch-action:pan-y}
.playback-readout{font:11px var(--mono);font-weight:400;color:#c3cde3;font-variant-numeric:tabular-nums;white-space:nowrap}
.playback-cursor{position:absolute;width:2px;background:#f4d28b;box-shadow:0 0 0 1px #080d1766;z-index:4;pointer-events:none;will-change:left}
.playback-cursor-label{position:absolute;top:3px;left:7px;padding:3px 6px;background:#0c1328ed;border:1px solid #e6c47755;border-radius:4px;font:10px var(--mono);color:#ffe4ad;white-space:nowrap}
.playback-cursor.label-left .playback-cursor-label{left:auto;right:7px}.playback-cursor.outside-window{background:none;border-left:2px dashed #e8c784;opacity:.8}
.waveform-strip .playback-cursor-label{display:none}
@media(max-width:650px){.brand-mark{width:34px;height:34px;border-radius:10px}.brand-mark svg{width:32px;height:32px}.logo{gap:8px}.brand-word{font-size:21px}.playback-readout{font-size:10px}}

.signal-outcome{padding:14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--panel-soft);margin-bottom:14px}.signal-outcome strong{display:block;font-size:13px;line-height:1.5}.signal-outcome p{font-size:12px;line-height:1.7;margin:8px 0}.signal-outcome .text-link{font-size:12px}

.header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.language-switch{display:flex;border:1px solid var(--line-strong);border-radius:7px;padding:2px;gap:2px}.language-switch button{background:transparent;border:0;border-radius:4px;padding:5px 7px;font-size:11px;line-height:1.5;color:var(--muted)}.language-switch button[aria-pressed="true"]{background:var(--lime);color:var(--bg);font-weight:650}.language-switch button:hover{color:var(--text);background:var(--line)}@media(max-width:650px){.header-actions{gap:7px}.header-actions>.btn{padding:9px}.header-actions>.btn span{display:none}.language-switch button{padding:4px 6px}.header-inner{gap:8px}}

.language-switch button[aria-pressed="true"]:hover{background:var(--lime);color:var(--bg)}

/* Measured Doppler evidence and relative fit field. */
.heatmap-legend{position:absolute;left:16px;top:16px;z-index:3;padding:12px 14px;background:rgba(255,255,255,.94);border:1px solid #d8dfdc;border-radius:10px;pointer-events:none;max-width:230px;color:#253a36;font-size:11px;display:grid;gap:6px}
.heatmap-legend div{height:8px;border-radius:4px;background:linear-gradient(90deg,#fde725,#5ec962,#21918c,#3b528b,#440154)}
.heatmap-legend small{font-size:10px;color:#61746e}
.fit-panel canvas{background:#080c1b}

.lab-spectrum canvas,#result-spectrum,.spectrum-hero canvas,.geo-canvas,.search-map:has(input[data-map="tiles"]:not(:checked)) .geo-canvas,.result-map:has(input[data-map="tiles"]:not(:checked)) .geo-canvas{filter:none}

.sensitivity-panel{padding:20px 24px;margin:0 0 24px}
.sensitivity-heading,.sensitivity-scale,.sensitivity-actions{display:flex;justify-content:space-between;align-items:center;gap:16px}
.sensitivity-heading label{font-size:15px;font-weight:600}.sensitivity-heading output{font:13px ui-monospace,monospace;color:var(--lime)}
.sensitivity-panel input[type=range]{display:block;width:100%;height:28px;margin:12px 0 3px;accent-color:var(--lime);cursor:pointer}
.sensitivity-scale{font-size:11px;color:var(--muted)}.sensitivity-summary{font-size:13px;margin:14px 0 6px;color:var(--text)}
.sensitivity-actions{justify-content:flex-start;flex-wrap:wrap;margin-top:14px}
@media(max-width:650px){.sensitivity-panel{padding:16px}.sensitivity-summary{font-size:12px;line-height:1.7}}
/* Source screening shares the laboratory's existing panels and controls. */
.sound-overview{margin:3rem 0}.sound-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.sound-card{padding:1.5rem;display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}.sound-card h3{font-size:1.4rem;margin:0}.sound-card p{line-height:1.6;color:var(--muted,#a6b3cd);margin:0}.sound-card button{margin-top:auto}.source-panel{padding:1.8rem}.source-panel>p{margin:1rem 0}.source-panel details{margin-top:1.5rem}.source-panel details>p,.source-panel details>.field{margin:1rem 0}.source-matches{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.source-matches article{padding:1rem;border:1px solid #ffffff20;border-radius:12px}.source-matches p{margin:.5rem 0}.scan-actions{display:flex;gap:1rem;margin:1.5rem 0}.sound-overview>.small-print{line-height:1.7}.sound-overview .section-heading .field{min-width:210px}.sound-card .pill{white-space:normal}
@media(max-width:800px){.sound-cards{grid-template-columns:1fr}.source-panel{padding:1rem}.sound-overview .section-heading{align-items:stretch;gap:1rem}.source-panel .signal-fields{grid-template-columns:1fr}.sound-card{padding:1.2rem}}
/* Shared geographic source catalogue, separate from acoustic location results. */
.sources-page{padding-top:48px;padding-bottom:80px}.sources-title{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:26px}.sources-title h1{font-size:clamp(28px,3.3vw,44px);line-height:1.15;margin:10px 0 14px;max-width:710px}.sources-title p{color:var(--muted);line-height:1.65}.sources-title>.btn{flex-shrink:0}.sources-title .eyebrow{color:#a6b3cd;font-size:12px;letter-spacing:.08em}.coverage-controls{padding:22px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:26px}.coverage-controls fieldset{border:0;padding:0;margin:0;min-width:0}.coverage-controls legend{font-size:13px;font-weight:650;margin-bottom:13px}.coverage-layers{display:flex;flex-wrap:wrap;gap:9px}.coverage-layer{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line-strong);border-radius:8px;font-size:12px;cursor:pointer}.coverage-layer strong{color:var(--muted);font-size:11px}.coverage-layer input{accent-color:#a7b7ff}.coverage-layer i,.coverage-row>i{width:9px;height:9px;flex-shrink:0;background:var(--source-color);border-radius:50%}.coverage-search .field{margin-bottom:10px}.coverage-search .checkbox-field{margin:10px 0}.coverage-search .text-button{font-size:12px}.coverage-status{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:22px 0 12px;font-size:12px}.coverage-status span{color:var(--muted)}.coverage-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:650px;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;background:#10192a}.coverage-map{position:relative;min-width:0;min-height:650px;overflow:hidden;background:#0c1423}.coverage-sidebar{display:flex;flex-direction:column;min-width:0;max-height:650px;border-left:1px solid var(--line-strong)}.coverage-detail{padding:20px;border-bottom:1px solid var(--line-strong);max-height:310px;overflow:auto}.coverage-detail h2{font-size:20px;line-height:1.3;margin:9px 0}.coverage-detail p{font-size:12px;line-height:1.6;color:var(--muted);margin:10px 0}.coverage-detail .text-link{font-size:12px}.coverage-list{overflow:auto;flex:1;min-height:100px}.coverage-row{display:flex;align-items:center;gap:10px;padding:13px 16px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text)}.coverage-row:hover,.coverage-row.selected{background:#202e49}.coverage-row>span{flex:1;min-width:0}.coverage-row strong{display:block;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.coverage-row small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.coverage-row>.icon{width:14px;flex-shrink:0}.coverage-pagination{padding:13px;display:flex;justify-content:space-between;gap:9px;font-size:12px;border-top:1px solid var(--line-strong)}.coverage-empty{padding:20px;color:var(--muted);font-size:13px;line-height:1.7}.coverage-notes{margin-top:24px;padding:22px}.coverage-notes h2{font-size:20px;margin-bottom:12px}.coverage-notes p{font-size:13px;line-height:1.8;color:var(--muted);margin:10px 0}.coverage-notes>.text-link{font-size:13px}.coverage-map .geo-canvas{filter:none}.coverage-map .map-attribution{font-size:10px;max-width:100%;overflow-wrap:anywhere}
@media(max-width:950px){.coverage-controls{grid-template-columns:1fr}.sources-title{flex-direction:column}.coverage-workspace{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:650px){.sources-page{padding-top:28px}.coverage-controls{padding:16px;gap:20px}.coverage-workspace{grid-template-columns:1fr}.coverage-map{min-height:410px}.coverage-sidebar{border-left:0;border-top:1px solid var(--line-strong);max-height:540px}.coverage-detail{max-height:280px}.coverage-layer{padding:9px;font-size:11px}.coverage-map .map-bottom{gap:10px}.site-header nav{display:flex}.site-header nav>:not(.nav-map){display:none}.site-header nav .nav-map{font-size:12px}.header-inner{gap:8px}.coverage-notes{padding:16px}}
.bell-analysis{padding:24px;margin:24px 0}.bell-analysis h3{font-size:22px;margin-bottom:12px}.bell-analysis p{font-size:13px;line-height:1.7;color:var(--muted)}.bell-timeline{height:34px;display:flex;margin-top:18px;background:#1a2437;border-radius:6px;overflow:hidden}.bell-timeline button{height:100%;flex-shrink:0;background:transparent;border:0;border-right:1px solid #090e1940;min-width:0;padding:0}.bell-timeline button.bell-present{background:#b7a0f0}.bell-timeline button:hover{background:#e3d8ff}.bell-time-labels{display:flex;justify-content:space-between;margin:7px 0 16px;font:11px ui-monospace,monospace;color:var(--muted)}.bell-analysis details>p{margin:15px 0}.bell-event-list{display:flex;flex-wrap:wrap;gap:7px 14px;max-height:230px;overflow:auto;margin:15px 0}.bell-event-list .text-button{font:12px ui-monospace,monospace;padding:5px}.bell-analysis h4{margin-top:20px}.bell-analysis .table-scroll{max-height:400px;overflow:auto}@media(max-width:650px){.bell-analysis{padding:16px}.bell-analysis h3{font-size:19px}}
