@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#0b0e10;--panel:#13191c;--line:#2b3538;--muted:#98a8a9;--green:#c5f76a;--purple:#baaeeb;--orange:#ffb17d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--bg);color:#f1f4eb;font:15px 'DM Sans',system-ui,sans-serif}header,main,footer{max-width:1440px;margin:auto}header{display:flex;align-items:center;gap:35px;padding:24px 48px;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}a:hover{color:var(--green)}.brand{font:700 24px 'Space Grotesk',sans-serif;display:flex;gap:12px;align-items:center}.logo{font-size:34px;color:var(--green);position:relative}.logo span{font-size:15px;position:absolute;right:-7px;top:-4px}.edition{font:10px 'DM Sans',sans-serif;letter-spacing:1.8px;color:var(--muted);margin-left:8px}nav{display:flex;gap:23px;margin-left:auto;font-size:12px}.pill{font-size:10px;border:1px solid #40512e;color:var(--green);padding:8px 11px;border-radius:30px}.hero{padding:80px 65px 75px;display:grid;grid-template-columns:1.15fr 1fr;gap:50px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2.8px;color:var(--green);font-weight:700}h1{font:500 clamp(45px,5.1vw,76px)/1.06 'Space Grotesk',sans-serif;letter-spacing:-3px;margin:22px 0}h1 em{font-style:normal;color:var(--green)}.intro{color:var(--muted);line-height:1.8;max-width:460px;margin:25px 0}.fine{font-size:11px;line-height:1.7;color:var(--muted)}button,.link-button{font:600 13px 'DM Sans',sans-serif;border:1px solid var(--line);background:#1b2427;color:#eef4e9;border-radius:8px;padding:15px 20px;cursor:pointer;transition:background .2s,border-color .2s}button:hover{border-color:var(--green);background:#2c3734}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid var(--purple);outline-offset:4px}.primary{background:var(--green);color:#17210c;border-color:var(--green)}.primary:hover{background:#d6ff93}.link-button{display:inline-flex;gap:50px;align-items:center}.bridge-art{position:relative;height:440px;background:radial-gradient(ellipse,#33482a38,transparent 65%);display:grid;place-items:center}.orbit{width:320px;height:320px;border:1px solid #445138;border-radius:50%;outline:1px dashed #293329;outline-offset:24px;transform:rotate(-20deg)}.orbit:after,.orbit:before{content:'';position:absolute;left:50%;top:0;width:1px;height:100%;background:#384530;transform:rotate(45deg)}.orbit:after{transform:rotate(-45deg)}.core{position:absolute;background:#1b2819;width:146px;height:146px;border-radius:35px;border:1px solid #6f9444;display:flex;align-items:center;justify-content:center;font:70px 'Space Grotesk';box-shadow:0 0 60px #9ad55217;color:var(--green)}.core>span{font-size:30px}.core small{position:absolute;bottom:18px;font:8px 'DM Sans';letter-spacing:2px;color:#c3d6ad}.signal{position:absolute;border:1px solid #3b4749;background:#172024;border-radius:15px;width:86px;height:72px;display:flex;justify-content:center;align-items:center;font-size:28px;color:var(--purple)}.signal small{font-size:7px;position:absolute;bottom:-20px;letter-spacing:1px;white-space:nowrap;color:var(--muted)}.s1{top:35px;left:45px}.s2{right:15px;top:65px}.s3{bottom:65px;left:15px}.s4{right:45px;bottom:35px}.art-caption{position:absolute;bottom:-25px;left:40%;font-size:11px;color:var(--muted);line-height:1.6}.workspace{padding:45px 48px 55px;border-top:1px solid var(--line);background:linear-gradient(180deg,#12181b,#0b0e10)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:30px}h2{font:500 34px 'Space Grotesk';letter-spacing:-1px;margin:14px 0 25px}.section-heading>p{font-size:12px;color:var(--muted);line-height:1.7}.scenario-bar{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0 22px}.scenario-bar button{flex:1;text-align:left;min-width:150px}.scenario-bar button small{display:block;font-size:10px;font-weight:400;opacity:.7;margin-top:7px}.scenario-bar .quiet{flex:0;min-width:90px;color:var(--muted);background:transparent}.notice{padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#151e21;font-size:12px;color:#b9c9c7}.notice.error{border-color:#c67060;color:#ffb5a7}.pipeline{display:flex;align-items:center;justify-content:space-between;margin:28px 0;font-size:11px;color:var(--muted)}.pipeline span{padding:10px 15px;border:1px solid var(--line);border-radius:6px}.pipeline span.active{color:var(--green);background:#26351c;border-color:#749b44}.pipeline i{font-style:normal}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:12px;margin-bottom:24px;overflow:hidden}.metrics>div{padding:23px 27px;border-right:1px solid var(--line)}.metrics>div:last-child{border:0}.metrics strong{display:block;font:500 34px 'Space Grotesk';color:var(--green);margin-bottom:8px}.metrics span{font-size:11px;color:var(--muted)}.lab-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:22px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;min-width:0}h3{font:500 17px 'Space Grotesk';margin:0 0 22px}h3>span{float:right;font:8px 'DM Sans';letter-spacing:1px;color:var(--muted);margin-top:6px}.device{padding:16px 0;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center}.device .icon{font-size:20px;color:var(--purple);background:#292635;padding:10px;border-radius:9px}.device strong{font-size:12px}.device small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.device .device-state{margin-left:auto;color:var(--green);font-size:10px;text-align:right}.device .offline{color:var(--orange)}.finding{display:block;width:100%;text-align:left;padding:15px;margin:0 0 10px;background:#1d2527;border:1px solid #3a4344}.finding .severity{font-size:9px;text-transform:uppercase;color:var(--orange);letter-spacing:1px;margin-right:10px}.finding strong{font-size:13px}.finding p{font-size:12px;color:var(--muted);line-height:1.6;margin:10px 0}.finding small{font:10px monospace;color:var(--purple)}.empty{font-size:13px;line-height:1.9;color:var(--muted);padding:30px 0}.timeline{margin-top:22px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left;white-space:nowrap}td,th{padding:15px 10px;border-bottom:1px solid var(--line)}th{font-size:10px;font-weight:400;color:var(--muted)}td:last-child{font-family:monospace;color:var(--purple)}.evidence-actions{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}.evidence-actions button{font-size:11px;padding:11px 14px}pre{font:11px/1.7 monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#0b1113;padding:18px;border-radius:8px;color:#b9c9c7;max-height:360px;overflow:auto}.how{padding:65px 48px}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:35px}.how article b{font:28px 'Space Grotesk';color:var(--purple)}.how h3{margin:20px 0 14px}.how p{font-size:13px;color:var(--muted);line-height:1.8}footer{padding:25px 48px 35px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}@media(max-width:900px){header{padding:20px 25px;flex-wrap:wrap;gap:15px}.edition{display:none}nav{gap:15px}.pill{display:none}.hero{padding:50px 30px;gap:10px}.bridge-art{transform:scale(.8);transform-origin:center}.hero h1{font-size:50px}.workspace,.how{padding:35px 25px}.metrics>div{padding:20px}.lab-grid{grid-template-columns:1fr}.how-grid{gap:25px}}@media(max-width:600px){header{padding:18px 20px}nav{font-size:10px}.brand{font-size:20px}nav a:first-child{display:none}.hero{grid-template-columns:1fr;padding:35px 24px}.hero h1{font-size:49px;letter-spacing:-2px}.hero .bridge-art{height:320px;margin:-15px 0 5px;transform:scale(.8)}.section-heading{display:block}.section-heading>p{margin-top:0}h2{font-size:28px}.workspace,.how{padding:30px 18px}.scenario-bar button{min-width:140px}.metrics{grid-template-columns:1fr 1fr}.metrics>div{border-bottom:1px solid var(--line)}.metrics strong{font-size:26px}.pipeline{gap:5px;overflow-x:auto}.pipeline span{padding:8px;font-size:9px;white-space:nowrap}.panel{padding:18px}h3>span{float:none;display:block;margin-top:9px}.how-grid{grid-template-columns:1fr;gap:20px}footer{flex-direction:column;padding:25px}.art-caption{bottom:-40px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* --- Incident severity filter controls (Kiro / feat/incident-severity-filter) --- */
.severity-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-8px 0 16px}
.filter-label{font-size:10px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-right:4px}
.severity-filter button{font:600 11px 'DM Sans',sans-serif;padding:7px 14px;border:1px solid var(--line);background:#1b2427;color:var(--muted);border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.severity-filter button:hover{border-color:var(--green);color:#eef4e9}
.severity-filter button.filter-active{background:#26351c;border-color:var(--green);color:var(--green)}
.severity-filter button:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.empty-filter{color:var(--orange);opacity:.85}
@media(max-width:600px){.severity-filter{gap:6px}.severity-filter button{padding:6px 10px}}

/* --- Correlated cases panel (Kiro / feat/cross-source-cases) --- */
.metrics{grid-template-columns:repeat(5,1fr)}
.cases-section{margin-top:22px}
.cases-note{margin:-12px 0 18px;line-height:1.7}
.case-card{display:block;width:100%;text-align:left;padding:15px;margin:0 0 10px;background:#1a1f2e;border:1px solid #3a4066;border-radius:8px;cursor:pointer;transition:border-color .2s}
.case-card:hover{border-color:var(--purple)}
.case-card:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.case-hdr{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.case-icon{font-size:14px;color:var(--purple)}
.case-card .severity{font-size:9px;text-transform:uppercase;color:#ff9eb5;letter-spacing:1px}
.case-card strong{font-size:13px}
.case-card p{font-size:12px;color:var(--muted);line-height:1.6;margin:8px 0 6px}
.case-card small{font:10px monospace;color:var(--purple)}
.case-hashes{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.case-hashes code{font-size:9px;background:#0d1217;border:1px solid var(--line);padding:3px 6px;border-radius:4px;color:var(--purple)}
.legacy-btn{border-color:#3a4066;color:var(--purple)}
.legacy-btn:hover{border-color:var(--purple);background:#1a1f2e}
@media(max-width:900px){.metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.metrics{grid-template-columns:1fr 1fr}.case-hashes{gap:4px}.legacy-btn{min-width:140px}}

/* --- Interactive evidence reconstruction (Kiro / feat/evidence-reconstruction) --- */
.reconstruction{margin-top:22px;scroll-margin-top:20px}
.reconstruction[hidden]{display:none}
.reconstruction:focus{outline:none}
.case-item{margin:0 0 10px}
.case-item .case-card{margin:0;border-bottom-left-radius:0;border-bottom-right-radius:0}
.recon-open{display:flex;width:100%;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 14px;font-size:12px;border-top-left-radius:0;border-top-right-radius:0;border-color:#3a4066;background:#202640;color:#e6e1ff}
.recon-open:hover{border-color:var(--purple);background:#2a3156}
.recon-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:20px}
.recon-head-main{min-width:0;flex:1 1 320px}
.recon-head h3{margin:8px 0 8px}
.recon-head h3:focus{outline:none}
.recon-head h3:focus-visible{outline:3px solid var(--purple);outline-offset:4px;border-radius:4px}
.recon-sub{margin:0;max-width:640px}
.recon-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.recon-badge{font-size:10px;letter-spacing:.8px;padding:7px 11px;border-radius:30px;border:1px solid var(--line);white-space:nowrap}
.recon-badge-ok{color:var(--green);border-color:#40512e}
.recon-badge-sev{color:#ff9eb5;border-color:#6b3a4a;text-transform:uppercase}
.recon-close{min-height:44px;padding:10px 14px;font-size:11px;background:transparent;color:var(--muted)}
.recon-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}
.recon-stage,.recon-side{min-width:0}
.recon-figure{margin:0;position:relative;border:1px solid var(--line);border-radius:12px;background:radial-gradient(ellipse at 50% 25%,#1d2c33,#0b1113 72%);overflow:hidden}
.recon-hud{position:absolute;inset:10px 10px auto 10px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap;z-index:1;pointer-events:none}
.recon-clockbox{display:inline-flex;gap:10px;font:600 12px monospace;color:var(--green);background:#0b1113d9;border:1px solid var(--line);padding:6px 10px;border-radius:8px}
.recon-elapsed{color:var(--muted)}
.recon-case-chip{font:700 11px 'DM Sans',sans-serif;letter-spacing:.6px;color:#ffd9e2;background:#3a1824e6;border:1px solid #c0506e;padding:6px 10px;border-radius:8px;overflow-wrap:anywhere;max-width:100%}
.recon-case-chip[hidden]{display:none}
.recon-scene{display:block;width:100%;height:auto}
.recon-wall{stroke:#2b3a41;stroke-width:1}
.recon-grid-line{stroke:#2f3f46;stroke-opacity:.55;stroke-width:1}
.recon-trim{fill:none;stroke:#3d525b;stroke-width:2}
.recon-desk-top{fill:#2a363c;stroke:#445962}.recon-desk-r{fill:#18222a;stroke:#2c3b43}.recon-desk-l{fill:#202c33;stroke:#2c3b43}
.recon-door-frame{fill:#0b1113;stroke:#6b8591;stroke-width:3}
.recon-leaf{fill:#3a4a52;stroke:#7a929d;stroke-width:1.5}
.recon-leaf-swung{fill:#2b383f}
.recon-seam,.recon-handle{stroke:#a9bfc9;stroke-width:2;stroke-linecap:round}
.recon-opening{fill:#33200a}
.recon-door-closed,.recon-door-open{transition:opacity .5s}
.recon-scene[data-door="closed"] .recon-door-open,.recon-scene[data-door="held-open"] .recon-door-closed{opacity:0}
.recon-pool{fill:var(--orange);opacity:0;transition:opacity .6s}
.recon-scene[data-door="held-open"] .recon-pool{opacity:.5}
.recon-ghost{fill:none;stroke:var(--purple);stroke-width:2;stroke-dasharray:7 5;opacity:0;transition:opacity .4s}
.recon-scene:not([data-excluded="0"]) .recon-ghost{opacity:.9}
.recon-scene[data-door="held-open"] .recon-ghost{opacity:.3}
.recon-reader{fill:#1b262c;stroke:#5f7782;stroke-width:1.5}
.recon-key{fill:#415761}
.recon-led-halo{fill:#58d6ff;opacity:.22;transition:fill .3s}
.recon-led{fill:#58d6ff;transition:fill .3s}
.recon-led-ring{fill:none;stroke:#ff5a5f;stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.recon-scene[data-reader="denied"] .recon-led,.recon-scene[data-reader="denied"] .recon-led-halo{fill:#ff5a5f}
.recon-scene[data-reader="denied"] .recon-led-halo{opacity:.4}
.recon-scene[data-reader="denied"] .recon-led-ring{opacity:1;animation:reconPulse 1.6s ease-out infinite}
@keyframes reconPulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.6);opacity:0}}
.recon-link{fill:none;stroke:var(--orange);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s ease}
.recon-scene[data-link="on"] .recon-link{stroke-dashoffset:0}
.recon-link-label{opacity:0;transition:opacity .4s .6s}
.recon-scene[data-link="on"] .recon-link-label{opacity:1}
.recon-link-pill{fill:#2a1a08;stroke:var(--orange);stroke-width:1.5}
.recon-link-text{fill:#ffd9bd;font:700 15px 'DM Sans',sans-serif}
.recon-status{margin:14px 0;padding:11px 13px;min-height:4.6em;border-left:3px solid var(--green);background:#151e21;border-radius:0 8px 8px 0;font-size:13px;line-height:1.65;color:#d5e0de}
.recon-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.recon-btn{min-height:44px;padding:10px 14px;font-size:12px}
.recon-btn:disabled{cursor:not-allowed}
.recon-play{background:var(--green);color:#17210c;border-color:var(--green);min-width:104px}
.recon-play:hover{background:#d6ff93;border-color:#d6ff93}
.recon-play.is-playing{background:var(--purple);border-color:var(--purple)}
.recon-speed-label{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin-left:auto}
.recon-speed{min-height:44px;font:600 12px 'DM Sans',sans-serif;background:#1b2427;color:#eef4e9;border:1px solid var(--line);border-radius:8px;padding:0 10px}
.recon-speed:focus-visible,.recon-slider:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.recon-slider-label{display:block;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.recon-slider{width:100%;min-height:32px;accent-color:var(--green);margin:0}
.recon-ruler{position:relative;height:34px;margin:6px 8px 0}
.recon-track{position:absolute;left:0;right:0;top:15px;height:4px;background:var(--line);border-radius:2px}
.recon-progress{position:absolute;left:0;top:15px;height:4px;width:var(--progress,0%);background:var(--green);border-radius:2px;transition:width .5s}
.recon-marker{position:absolute;left:var(--at,0%);top:7px;width:20px;height:20px;margin-left:-10px;border-radius:50%;border:2px solid #56686f;background:var(--bg);cursor:pointer;transition:border-color .3s,background .3s}
.recon-marker-anchor.is-on{border-color:#ff5a5f;background:#3a1a1e}
.recon-marker-match.is-on{border-color:var(--orange);background:#3a2610}
.recon-marker-excluded{border-style:dashed}
.recon-marker-excluded.is-on{border-color:var(--purple)}
.recon-ruler-labels{display:flex;justify-content:space-between;gap:8px;margin:0 0 4px;font:10px monospace;color:var(--muted)}
.recon-card{border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 14px;background:#10171a}
.recon-card h4{font:500 15px 'Space Grotesk';margin:0 0 12px}
.recon-card h5{font:700 10px 'DM Sans';letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin:16px 0 8px}
.recon-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.recon-stat{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#0d1417}
.recon-stat strong{display:block;font:500 24px 'Space Grotesk';color:var(--green)}
.recon-stat small{display:block;margin-top:4px;font-size:10px;color:var(--muted);line-height:1.5}
.recon-checks,.recon-excl,.recon-steps{list-style:none;margin:0;padding:0}
.recon-check{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line)}
.recon-check-icon{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700}
.is-pass .recon-check-icon{background:#26351c;color:var(--green)}
.is-fail .recon-check-icon{background:#3a2610;color:var(--orange)}
.recon-check strong{display:block;font-size:12px}
.recon-check small,.recon-excl small{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:3px}
.recon-excl li{padding:9px 0;border-top:1px solid var(--line)}
.recon-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.recon-step{display:grid;grid-template-columns:62px 1fr;grid-template-areas:'t n' '. r';column-gap:10px;width:100%;min-height:44px;text-align:left;padding:10px 12px;margin:0 0 6px;font-size:12px;background:#141c1f;color:var(--muted)}
.recon-step-time{grid-area:t;font:11px monospace;color:var(--purple)}
.recon-step-title{grid-area:n;font-weight:600}
.recon-step small{grid-area:r;font-size:10px;font-weight:400;opacity:.8}
.recon-step.is-seen{color:#e8efe3}
.recon-step.is-current{border-color:var(--green);background:#1c2a1a;color:#fff}
.recon-inspector{margin:0}
.recon-kv{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:12px}
.recon-kv dt{color:var(--muted);font-size:11px}
.recon-kv dd{margin:0;line-height:1.55;overflow-wrap:anywhere}
.recon-mono{font:11px/1.6 monospace;color:var(--purple);overflow-wrap:anywhere;word-break:break-all}
.recon-insp-empty{padding:12px 0;font-size:12px}
.recon-error{padding:18px 0 8px}
@media(max-width:900px){.recon-grid{grid-template-columns:1fr}}
@media(max-width:600px){
 .recon-sub{font-size:11px}
 .recon-controls .recon-btn{flex:1 1 calc(33.333% - 8px);min-width:0;padding:10px 6px}
 .recon-play{order:-1;flex-basis:100%!important}
 .recon-speed-label{flex:1 1 100%;margin-left:0;justify-content:space-between}
 .recon-hud{position:static;padding:10px 10px 0;inset:auto}
 .recon-clockbox{font-size:11px;padding:5px 8px}
 .recon-case-chip{font-size:10px;padding:5px 8px}
 .recon-kv{grid-template-columns:1fr;gap:2px}
 .recon-stat strong{font-size:20px}
 .recon-step{grid-template-columns:56px 1fr}
 .recon-ruler-labels span:nth-child(2){display:none}
}
@media(prefers-reduced-motion:reduce){.recon-scene *{transition:none!important;animation:none!important}.recon-progress,.recon-marker{transition:none!important}}
.reconstruction[data-reduced-motion="true"] .recon-scene *{transition:none!important;animation:none!important}
