*,:before,:after{box-sizing:border-box}html,body{background:var(--color-bg);min-height:100%;color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{margin:0;line-height:1.25}code{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.85em}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.muted{color:var(--color-text-muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.loading{color:var(--color-text-muted);padding:24px}.design{gap:40px;max-width:1120px;margin:0 auto;padding:32px 24px 64px;display:grid}.design h1{letter-spacing:-.01em;font-size:28px}.design h2{margin-bottom:8px;font-size:18px}.design h3{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:16px 0 8px;font-size:13px;font-weight:600}.design__header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.theme-switch{border:1px solid var(--color-border);border-radius:8px;gap:12px;padding:6px 12px 8px;display:flex}.theme-switch legend{color:var(--color-text-muted);padding:0 4px;font-size:11px}.theme-switch label{text-transform:capitalize;align-items:center;gap:4px;display:flex}.glyph-table{border-collapse:collapse;background:var(--color-surface);border-radius:12px;overflow:hidden}.glyph-table th,.glyph-table td{border-bottom:1px solid var(--color-border);text-align:center;padding:4px 10px;font-weight:500}.glyph-table th[scope=row]{text-align:left;white-space:nowrap}.glyph-table thead th{color:var(--color-text-muted);font-size:12px}.tier-row{gap:16px;margin-top:16px;display:flex}.tier-row figure{text-align:center;color:var(--color-text-muted);margin:0;font-size:12px}.edge-samples,.detection-samples{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:6px 24px;margin:0;padding:0;list-style:none;display:grid}.edge-samples li,.detection-samples li{align-items:center;gap:12px;display:flex}.edge-samples code{margin-left:auto}.swatches{flex-wrap:wrap;gap:12px;display:flex}.swatch{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;align-items:center;gap:8px;margin:0;padding:8px 12px 8px 8px;display:flex}.swatch figcaption{font-size:12px;display:grid}.swatch__name{font-weight:600}.swatch__contrast{color:var(--color-text-muted)}.type-sample--sans{font-size:20px}.type-sample--mono{font-family:var(--font-mono);font-size:15px}.mockup-svg{border:1px solid var(--color-border);border-radius:12px;width:100%;height:auto;display:block}.mockup-pair{grid-template-columns:1.15fr 1fr;align-items:start;gap:24px;display:grid}.overview{gap:16px;display:grid}.kpis{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.kpi,.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px}.kpi h4,.panel h4{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.panel h4+*{margin-top:8px}.panel h4:not(:first-child){margin-top:16px}.kpi__value{font-variant-numeric:tabular-nums;margin:4px 0;font-size:32px;font-weight:650}.kpi__value--critical{color:var(--severity-critical)}.kpi__note,.kpi__legend{color:var(--color-text-muted);margin:0;font-size:12px}.kpi__legend{gap:10px;display:flex}.tier-bar{width:100%;height:16px}.overview__columns{grid-template-columns:1fr 1fr;gap:16px;display:grid}.path-list,.fix-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.path-list li{border-bottom:1px solid var(--color-border);align-items:center;gap:8px;padding:4px 0;display:flex}.path-list__name{font-weight:600}.path-list__meta{color:var(--color-text-muted);margin-left:auto;font-size:12px}.fix-list{counter-reset:fix}.fix-list li{border-bottom:1px solid var(--color-border);justify-content:space-between;gap:12px;padding:4px 0;font-size:13px;display:flex}.fix-list li:before{counter-increment:fix;content:counter(fix);font-family:var(--font-mono);color:var(--color-text-muted)}.fix-list li span:first-child{flex:1}.fix-list__cut{white-space:nowrap;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.badge{text-transform:uppercase;letter-spacing:.04em;border:1px solid;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.badge--critical{color:var(--severity-critical)}.badges{flex-wrap:wrap;gap:8px;display:flex}.attack-badge{border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);border-radius:8px;align-items:baseline;gap:6px;padding:3px 10px;font-size:12px;text-decoration:none;display:inline-flex}.attack-badge:hover{border-color:var(--color-accent)}.attack-badge__id{font-family:var(--font-mono);font-weight:600}.attack-badge__tactics{color:var(--color-text-muted);font-size:11px}.edge-flow{stroke-dasharray:3 21;animation:1s linear infinite edge-flow}@keyframes edge-flow{to{stroke-dashoffset:-24px}}@media (prefers-reduced-motion:reduce){.edge-flow{animation:none;display:none}}@media (width<=900px){.kpis,.overview__columns,.mockup-pair{grid-template-columns:1fr}}.shell{grid-template-rows:auto auto 1fr;min-height:100vh;display:grid}.skip-link{position:absolute;left:-9999px}.skip-link:focus{z-index:100;background:var(--color-surface-raised);padding:8px 12px;top:8px;left:8px}.topbar{border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;gap:16px;padding:8px 16px;display:flex}.topbar__brand{font-family:var(--font-mono);color:var(--color-text);font-size:1.1rem;font-weight:700;text-decoration:none}.topbar__nav{flex-wrap:wrap;gap:4px;display:flex}.topbar__link{color:var(--color-text-muted);border-radius:8px;padding:6px 10px;text-decoration:none}.topbar__link[aria-current=page]{color:var(--color-text);background:var(--color-surface-raised);box-shadow:inset 0 -2px 0 var(--color-accent)}.topbar__tools{gap:8px;margin-left:auto;display:flex}.button{font:inherit;border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);cursor:pointer;border-radius:8px;padding:6px 12px}.button:hover{border-color:var(--color-accent)}.button--ghost{background:0 0}.button[aria-pressed=true]{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}kbd{font-family:var(--font-mono);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:4px;padding:1px 4px;font-size:.8em}.mono{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.85em}.notice{border-bottom:1px solid var(--color-border);background:var(--color-surface-raised);align-items:center;gap:12px;padding:8px 16px;display:flex}.notice--info{color:var(--color-text-muted)}.shell__body{min-height:0;display:flex}.shell__main{flex:1;min-width:0;padding:16px 24px 96px}.shell__main:focus{outline:none}.view__title{margin-bottom:12px;font-size:1.4rem}.details{border-left:1px solid var(--color-border);background:var(--color-surface);width:min(380px,40vw);padding:16px;overflow-y:auto}.details__head{justify-content:space-between;align-items:center;display:flex}.details__title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.85rem}.details__name{overflow-wrap:anywhere;align-items:center;gap:6px;margin:12px 0;font-size:1.05rem;display:flex}.details__facts{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0 0 12px;display:grid}.details__facts dt{color:var(--color-text-muted)}.details__facts dd{margin:0}.details__actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.details__findings{margin:0;padding:0;list-style:none}.details__findings li{border-top:1px solid var(--color-border);padding:4px 0}.sev{font-family:var(--font-mono);text-transform:uppercase;font-size:.8em;font-weight:700}.sev--critical{color:var(--severity-critical)}.sev--high{color:var(--severity-high)}.sev--medium{color:var(--severity-medium)}.sev--low{color:var(--severity-low)}.sev--info{color:var(--severity-info)}.legend{z-index:10;border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;max-width:min(560px,100vw - 32px);position:fixed;bottom:16px;right:16px}.legend__toggle{font:inherit;width:100%;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:0;padding:6px 12px}.legend__body{gap:16px;padding:0 12px 12px;font-size:.8rem;display:flex}.legend__list{margin:0;padding:0;list-style:none}.legend__list li{align-items:center;gap:6px;display:flex}.overlay{z-index:50;background:color-mix(in srgb, var(--color-bg) 70%, transparent);place-items:start center;padding-top:12vh;display:grid;position:fixed;inset:0}.palette,.dialog{border:1px solid var(--color-border);background:var(--color-surface-raised);width:min(640px,100vw - 32px);box-shadow:0 12px 32px color-mix(in srgb, var(--color-text) 20%, transparent);border-radius:12px}.dialog{padding:16px}.palette__input{font:inherit;border:0;border-bottom:1px solid var(--color-border);width:100%;color:var(--color-text);background:0 0;padding:12px 16px}.palette__input:focus{outline:none}.palette__list{max-height:50vh;margin:0;padding:4px;list-style:none;overflow-y:auto}.palette__item{cursor:pointer;border-radius:8px;justify-content:space-between;gap:12px;padding:6px 12px;display:flex}.palette__item--active{background:var(--color-surface);box-shadow:inset 2px 0 0 var(--color-accent)}.palette__label{overflow-wrap:anywhere}.palette__detail,.palette__empty{color:var(--color-text-muted)}.palette__hit{color:var(--color-accent);background:0 0;font-weight:700}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;padding:6px 8px}.table thead th{color:var(--color-text-muted);font-weight:600}.state{max-width:640px;margin:10vh auto;padding:24px}.skeleton{background:var(--color-surface-raised);border-radius:6px;height:14px;margin:12px 0;animation:1.4s ease-in-out infinite pulse}.skeleton--title{width:40%;height:28px}@keyframes pulse{50%{opacity:.5}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){.button,.legend,.palette,.dialog,.details{border-width:2px}}.section__title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:20px 0 8px;font-size:.85rem}.cards{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.card{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:12px;flex-direction:column;gap:2px;padding:12px 14px;text-decoration:none;display:flex}.card:hover{border-color:var(--color-accent)}.card__value{font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:700}.card__label{color:var(--color-text-muted)}.card__hint{color:var(--color-text-muted);font-size:.8rem}.overview__lists{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}.rank-list{margin:0;padding-left:20px}.rank-list li{padding:4px 0}.node-ref{color:var(--color-text);overflow-wrap:anywhere;align-items:center;gap:4px;display:inline-flex}.filters{flex-wrap:wrap;align-items:end;gap:12px 20px;margin-bottom:8px;display:flex}.filters__group{border:1px solid var(--color-border);border-radius:8px;gap:10px;margin:0;padding:4px 8px;display:flex}.filters__field input[type=search],.filters__field select{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:6px;padding:4px 8px}.vtable{border:1px solid var(--color-border);border-radius:8px;max-height:calc(100vh - 280px);overflow-y:auto}.vtable thead th{background:var(--color-surface);position:sticky;top:0}.row{cursor:pointer;height:56px}.row:hover,.row--selected{background:var(--color-surface-raised)}.cell-wrap{overflow-wrap:anywhere}.th-button,.link-button{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.link-button{color:var(--color-accent)}.badge{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;margin-left:6px;padding:0 6px;font-size:.75em}.fix__layout{grid-template-columns:minmax(0,3fr) minmax(260px,2fr);gap:24px;display:grid}.fix__steps{margin:0;padding:0;list-style:none}.fix__step{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;margin-bottom:8px;padding:12px}.fix__step--applied{border-color:var(--color-accent)}.fix__change{overflow-wrap:anywhere;margin:6px 0}.actions{gap:8px;margin-bottom:8px;display:flex}.trace__canvas{padding:8px 0;overflow-x:auto}.trace__box{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1.5px}.trace__card{cursor:pointer;outline:none}.trace__card:focus-visible .trace__box,.trace__card--selected .trace__box{stroke:var(--color-focus);stroke-width:2.5px}.trace__name{fill:var(--color-text);font-size:13px;font-weight:600}.trace__meta,.trace__label{fill:var(--color-text-muted);font-size:11px}.trace__hit{fill:#0000;cursor:pointer;outline:none}.trace__hit:focus-visible{stroke:var(--color-focus);stroke-width:2px}.trace__edge--selected .trace__label{fill:var(--color-text);font-weight:700}.explainer{border:1px solid var(--color-border);background:var(--color-surface);border-radius:12px;margin-top:16px;padding:12px 16px}.explainer__trace li{overflow-wrap:anywhere;padding:2px 0}.explainer__policy h3{margin:12px 0 4px;font-size:.9rem}.json{max-height:420px;font-family:var(--font-mono);margin:0;padding:8px 0;font-size:12px;line-height:1.5;overflow:auto}.json__line{padding:0 12px;display:block}.json__line--hit{background:var(--color-surface-raised);box-shadow:inset 3px 0 0 var(--color-accent)}.json__key{color:var(--color-accent)}.json__string{color:var(--color-text)}.json__number,.json__literal{color:var(--severity-medium)}.json__brace,.json__bracket,.json__colon,.json__comma{color:var(--color-text-muted)}.reach__canvas{max-height:72vh;overflow:auto}.reach__ring{fill:none;stroke:var(--color-border);stroke-dasharray:2 6}.reach__node{cursor:pointer;outline:none}.reach__node:focus-visible{outline:2px solid var(--color-focus)}.reach__label{fill:var(--color-text);paint-order:stroke;stroke:var(--color-bg);stroke-width:3px;font-size:11px}.exposure__scroll{border:1px solid var(--color-border);border-radius:8px;max-height:70vh;overflow:auto}.exposure__spacer{position:relative}.exposure__canvas{cursor:crosshair;display:block;position:sticky;top:0}.swatch{align-items:center;gap:4px;margin-right:8px;display:inline-flex}.exposure__detail{margin:8px 0}.atlas__bar{flex-wrap:wrap;align-items:end;gap:8px 14px;margin-bottom:8px;display:flex}.atlas__bar .view__title{margin:0 12px 0 0}.atlas__stage{border:1px solid var(--color-border);background:var(--color-bg);border-radius:12px;height:calc(100vh - 230px);min-height:360px;position:relative;overflow:hidden}.atlas__gl,.atlas__overlay{width:100%;height:100%;position:absolute;inset:0}.atlas__overlay{cursor:grab;touch-action:none}.atlas__overlay:active{cursor:grabbing}.atlas__minimap{pointer-events:none;width:160px;height:110px;position:absolute;bottom:12px;left:12px}.atlas__loading{color:var(--color-text-muted);place-items:center;display:grid;position:absolute;inset:0}.trace__label--choke{fill:var(--color-text);font-weight:700}.diff__edge--removed,.diff__node--removed,.diff__ghost{opacity:.4}.diff__key{border-top:3px solid var(--color-accent);width:24px;height:0;display:inline-block}.diff__key--removed{border-top:2px dashed var(--color-text-muted)}.notice--demo{background:var(--color-surface);flex-wrap:wrap}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(./InterVariable-latin-DwIvHVOU.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(./JetBrainsMonoVariable-latin-DEpABebQ.woff2)format("woff2")}
