@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/archivo-black.woff2)format("woff2")}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/spline-sans-mono.woff2)format("woff2")}@font-face{font-family:Doto;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/doto.woff2)format("woff2")}:root{color-scheme:light dark;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Archivo Black", "Arial Black", sans-serif;--font-mono:"Spline Sans Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-dot:"Doto", "Spline Sans Mono", monospace;--ink:#16191d;--ink-soft:#495159;--ink-faint:#798189;--paper:#e8eaed;--paper-sunk:#dde0e4;--card-face:#f3f4f6;--card-face-strong:#f8f9fa;--rule:#16191d29;--accent:#1d5c92;--accent-deep:#174a77;--accent-soft:#1d5c921a;--alarm:#96610a;--alarm-sunk:#b274001a;--amber-bright:#ffb000;--calm:#1d5c92;--calm-sunk:#1d5c920f;--radius:4px;--spring:cubic-bezier(.22, 1, .36, 1);--t-chips:.65s;--chip-step:.11s;--strike-step:90ms}@media (prefers-color-scheme:dark){:root{--ink:#e5e8ea;--ink-soft:#a6adb4;--ink-faint:#767e86;--paper:#16181b;--paper-sunk:#101214;--card-face:#1d2023;--card-face-strong:#222528;--rule:#e6ebf024;--accent:#5ea7e0;--accent-deep:#7cb8ea;--accent-soft:#5ea7e021;--alarm:#e8a33d;--alarm-sunk:#e8a33d1a;--amber-bright:#ffb24a;--calm:#5ea7e0;--calm-sunk:#5ea7e012}}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;padding:14px;font-size:16px;line-height:1.55}button{font:inherit;cursor:pointer}:where(button,summary,input,label):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.picker:focus-within{outline:2px solid var(--accent);outline-offset:2px}.dropzone{border:1px solid var(--rule);border-radius:var(--radius);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E"), var(--paper-sunk);flex-direction:column;min-height:412px;transition:border-color .25s,background-color .25s;display:flex;position:relative}.dropzone.is-targeted{border-color:var(--amber-bright)}.vf{border:0 solid var(--ink-soft);pointer-events:none;width:20px;height:20px;transition:border-color .25s, transform .25s var(--spring);position:absolute}.vf--tl{border-top-width:2px;border-left-width:2px;top:10px;left:10px}.vf--tr{border-top-width:2px;border-right-width:2px;top:10px;right:10px}.vf--bl{border-bottom-width:2px;border-left-width:2px;bottom:46px;left:10px}.vf--br{border-bottom-width:2px;border-right-width:2px;bottom:46px;right:10px}.is-targeted .vf{border-color:var(--amber-bright)}.is-targeted .vf--tl{transform:translate(-3px,-3px)}.is-targeted .vf--tr{transform:translate(3px,-3px)}.is-targeted .vf--bl{transform:translate(-3px,3px)}.is-targeted .vf--br{transform:translate(3px,3px)}.dropzone__stage{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 24px 28px;display:flex;position:relative}.af{border:1.5px solid var(--amber-bright);opacity:.4;pointer-events:none;width:72px;height:72px;margin:-36px 0 0 -36px;position:absolute;top:50%;left:50%}@media (prefers-reduced-motion:no-preference){.af{animation:2.6s ease-in-out infinite af-hunt}}@keyframes af-hunt{0%,to{opacity:.28;transform:scale(1)}50%{opacity:.55;transform:scale(1.06)}}.is-targeted .af{opacity:1;animation:none;transform:scale(1.1)}.dropzone__title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 6px;font-size:22px;font-weight:400}.dropzone__sub{font-family:var(--font-mono);color:var(--ink-soft);margin:0 0 20px;font-size:13px}.dropzone__chips{flex-wrap:wrap;justify-content:center;gap:7px;margin:0 0 22px;padding:0;list-style:none;display:flex}.dropzone__chips li{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule);border-radius:2px;padding:4px 10px;font-size:10.5px;font-weight:500}.picker{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper);background:var(--ink);cursor:pointer;transition:background .2s, transform .2s var(--spring);border-radius:2px;padding:9px 18px;font-size:13px;font-weight:600;display:inline-block}.picker:hover{background:var(--accent-deep)}.picker:active{transform:scale(.97)}.picker-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.dropzone.has-photo{min-height:0}.dropzone__stage[hidden]{display:none}.dropzone__promise{color:var(--ink-faint);max-width:52ch;margin:20px 0 0;font-size:12.5px}.osd{border-top:1px solid var(--rule);font-family:var(--font-mono);color:var(--ink-faint);align-items:baseline;gap:6px 18px;margin:0;padding:9px 14px;display:flex}.dropzone:not(.has-photo) .osd{display:none}.osd__name{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.osd__meta{letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;flex:none;margin-left:auto;font-size:10.5px}.card{border:1px solid var(--rule);border-radius:var(--radius);background:var(--card-face);margin-top:14px;overflow:hidden}@media (prefers-reduced-motion:no-preference){.card{animation:card-in .45s var(--spring) both}@keyframes card-in{0%{opacity:0;transform:translateY(12px)}}}.card__head{border-bottom:1px solid var(--rule);font-family:var(--font-mono);align-items:baseline;gap:12px;padding:10px 14px;display:flex}.card__reset{border:1px solid var(--rule);color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border-radius:2px;margin-left:auto;padding:4px 10px;font-size:11px;transition:color .2s,border-color .2s}.card__reset:hover{color:var(--accent-deep);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.flip{aspect-ratio:4/3;perspective:1300px;cursor:pointer;width:100%;max-height:520px;position:relative}.flip:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.flip__inner{transform-style:preserve-3d;transition:transform .7s var(--spring);position:absolute;inset:0}.flip.is-flipped .flip__inner{transform:rotateY(180deg)}.flip__front,.flip__back{backface-visibility:hidden;background:#0b0d0f;margin:0;position:absolute;inset:0;overflow:hidden}.flip__back{transform:rotateY(180deg)}.flip__photo{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.flip__front--noimg:after{content:"no preview";font-family:var(--font-dot);letter-spacing:.14em;text-transform:uppercase;color:#fff6;place-content:center;font-weight:900;display:grid;position:absolute;inset:0}.matrix__canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.scanline{--scan:var(--amber-bright);z-index:1;pointer-events:none;background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--scan) 22%, transparent) 68%, color-mix(in srgb, var(--scan) 60%, transparent));border-bottom:2px solid var(--scan);opacity:0;height:13%;position:absolute;top:0;left:0;right:0;transform:translateY(-110%)}.flip__front.v-exposed .scanline{--scan:#ff3b3b}.flip__front.v-clean .scanline{--scan:#3ddc84}.flip.is-flipped .flip__front .scanline,.flip.is-flipped .flip__front .stamp,.flip.is-flipped .flip__front .scan-count{opacity:0;animation:none}.scan-count{z-index:3;font-family:var(--font-mono);color:#fff;background:#0000009e;border:1px solid #ff3b3b8c;border-radius:999px;align-items:baseline;gap:7px;padding:5px 13px;display:none;position:absolute;top:12px;left:50%;transform:translate(-50%)}.flip__front.is-counting .scan-count{display:inline-flex}.scan-count__num{color:#ff6a5c;font-size:16px;font-weight:700}.scan-count__label{letter-spacing:.12em;text-transform:uppercase;color:#ffffffc7;font-size:10px}@media (prefers-reduced-motion:no-preference){.scanline{animation:2.3s ease-in-out infinite scan-photo}}.flip__front.scan-done .scanline{opacity:0;animation:none}@keyframes scan-photo{0%,to{opacity:1;transform:translateY(-110%)}50%{opacity:1;transform:translateY(780%)}}.flip__hint{z-index:2;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#fff;pointer-events:none;background:#00000080;border:1px solid #ffffff47;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:10.5px;display:inline-flex;position:absolute;bottom:10px;right:10px}.flip__hint--back{inset:10px auto auto 10px}.flip.is-flipped .flip__front .flip__hint{opacity:0}.flip__hint-icon{font-size:13px;line-height:1}@media (prefers-reduced-motion:no-preference){.flip:not(.is-flipped) .flip__front .flip__hint{animation:2.8s ease-in-out infinite hint-nudge}}@keyframes hint-nudge{0%,92%,to{transform:translateY(0)}96%{transform:translateY(-3px)}}.legend{z-index:2;font-family:var(--font-mono);background:#0000009e;border-top:1px solid #ffffff1f;flex-wrap:wrap;gap:4px 18px;margin:0;padding:9px 14px;list-style:none;display:flex;position:absolute;bottom:0;left:0;right:0}.legend__item{align-items:baseline;gap:7px;margin:0;display:inline-flex}.legend__swatch{border-radius:2px;flex:none;align-self:center;width:9px;height:9px}.legend__item--image .legend__swatch{background:#171b19;border:1px solid #ffffff2e}.legend__item--classC .legend__swatch{background:#e6c11e}.legend__item--classB .legend__swatch{background:#e87b28}.legend__item--classA .legend__swatch{background:#ff3b3b;box-shadow:0 0 6px #ff3b3b}.legend__label{letter-spacing:.09em;text-transform:uppercase;color:#fff9;font-size:10px}.legend__bytes{font-family:var(--font-dot);letter-spacing:.05em;color:#fff;font-size:12px;font-weight:900}.legend__item--classA .legend__bytes{color:#ff7a6b}.card__body{padding:16px 14px}.stamp{z-index:3;border:3px solid var(--accent);font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--accent);background:color-mix(in srgb, var(--card-face) 84%, transparent);opacity:0;border-radius:3px;padding:5px 14px 4px;font-size:17px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-12deg)}.flip__front.v-exposed .stamp{border-color:var(--alarm);color:var(--alarm)}.flip__front.is-stamped .stamp{animation:stamp-in .34s var(--spring) both}@keyframes stamp-in{0%{opacity:0;transform:translate(-50%,-50%)rotate(-12deg)scale(2.4)}70%{opacity:1;transform:translate(-50%,-50%)rotate(-12deg)scale(.94)}to{opacity:1;transform:translate(-50%,-50%)rotate(-12deg)scale(1)}}.reading{color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:13px}.reading--error{color:var(--alarm)}.matrix__verdict{z-index:2;color:#f2f4f5;letter-spacing:-.01em;text-align:center;background:#000000ad;border:1px solid #ffffff24;border-radius:4px;max-width:min(94%,76ch);margin:0;padding:12px 18px;font-size:13.5px;font-weight:600;line-height:1.4;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.evidence{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.finding{flex-direction:column;gap:6px;max-width:100%;margin:0;display:flex}.finding:has(.finding__callout),.finding:has(.map){flex-basis:100%}.chip{border:1px solid var(--rule);background:var(--card-face-strong);max-width:100%;font-family:var(--font-mono);border-radius:2px;align-self:flex-start;align-items:baseline;gap:8px;padding:5px 10px;font-size:12.5px;display:inline-flex;position:relative}@media (prefers-reduced-motion:no-preference){.chip{animation:.26s steps(7,end) both chip-in;animation-delay:calc(var(--t-chips) + var(--i,0) * var(--chip-step))}}@keyframes chip-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.chip__label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;font-size:10px;font-weight:600}.chip__value{word-break:break-word}.finding--sensitive .chip{border-color:color-mix(in srgb, var(--alarm) 55%, transparent);background:var(--alarm-sunk)}.finding--sensitive .chip__label{color:var(--alarm)}.finding--sensitive .chip__value{font-weight:600}.chip__keep{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:600;display:none}.card--struck .chip__keep{display:inline}.chip__value{text-decoration-line:line-through;text-decoration-color:#0000;text-decoration-thickness:2px}.card--struck .finding:not(.finding--kept) .chip{animation:.26s steps(7,end) both chip-in,.2s both chip-dim;animation-delay:calc(var(--t-chips) + var(--i,0) * var(--chip-step)), calc(var(--t-strike,0s) + var(--i,0) * var(--strike-step))}.card--struck .finding:not(.finding--kept) .chip__value{animation:.18s ease-out both strike;animation-delay:calc(var(--t-strike,0s) + var(--i,0) * var(--strike-step))}@keyframes strike{to{text-decoration-color:var(--alarm)}}@keyframes chip-dim{to{opacity:.55}}.finding__callout{color:var(--ink-soft);background:var(--alarm-sunk);border-left:2px solid var(--alarm);border-radius:0 2px 2px 0;max-width:60ch;margin:0;padding:9px 13px;font-size:13px;line-height:1.5}.map{margin:0}.map__button{border:1px solid var(--rule);font-family:var(--font-mono);color:var(--ink);background:0 0;border-radius:2px;padding:5px 12px;font-size:12px;transition:border-color .2s,color .2s}.map__button:hover{border-color:var(--accent);color:var(--accent)}.map__warning{color:var(--ink-faint);max-width:46ch;margin:6px 0 0;font-size:12.5px}.raw{margin:0 0 16px;font-size:13px}.raw summary{cursor:pointer;color:var(--ink-soft);font-family:var(--font-mono)}.raw pre{font-family:var(--font-mono);background:var(--paper-sunk);border:1px solid var(--rule);border-radius:2px;max-height:320px;margin:10px 0 0;padding:12px;font-size:12px;line-height:1.45;overflow:auto}.outcome{border-radius:2px;padding:14px 16px;font-size:14px}@media (prefers-reduced-motion:no-preference){.outcome{animation:outcome-in .4s var(--spring) both;animation-delay:calc(var(--t-stamp,0s) + .28s)}}@keyframes outcome-in{0%{opacity:0;transform:translateY(8px)}}.outcome--clean{background:var(--calm-sunk);border:1px solid color-mix(in srgb, var(--calm) 30%, transparent)}.outcome--failed{background:var(--alarm-sunk);border:1px solid color-mix(in srgb, var(--alarm) 40%, transparent)}.outcome--blocked{background:var(--paper-sunk);border:1px solid var(--rule)}.meter{border-bottom:1px solid var(--rule);align-items:baseline;gap:10px;margin:0 0 10px;padding-bottom:10px;display:flex}.meter__num{font-family:var(--font-dot);letter-spacing:.04em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:30px;font-weight:900;line-height:1}.meter__unit{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-size:10.5px;font-weight:600}.outcome__head{margin:0 0 8px;font-weight:600}.outcome--failed .outcome__head{color:var(--alarm)}.outcome__body{color:var(--ink-soft);max-width:62ch;margin:0}.outcome__list{color:var(--ink-soft);margin:0 0 12px;padding-left:20px}.outcome__list li{margin-bottom:3px}.outcome__kept-head{color:var(--ink-soft);margin:0 0 5px}.outcome__list--kept{color:var(--ink-faint)}.outcome__note{color:var(--ink-faint);margin:0 0 14px;font-size:13px}.download{background:var(--accent);color:#fff;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;transition:background .2s, transform .2s var(--spring);border:0;border-radius:2px;padding:10px 20px;font-size:13px;font-weight:600}@media (prefers-color-scheme:dark){.download{color:#10151a}}.download:hover{background:var(--accent-deep)}.download:active{transform:scale(.98)}.clean{margin-top:4px}.clean__btn{background:var(--accent);color:#fff;width:100%;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;transition:background .2s, transform .2s var(--spring);border:0;border-radius:3px;padding:13px 20px;font-size:14px;font-weight:600}@media (prefers-color-scheme:dark){.clean__btn{color:#10151a}}.clean__btn:hover{background:var(--accent-deep)}.clean__btn:active{transform:scale(.99)}.clean__btn:disabled{opacity:.6;cursor:default}.clean--note{border:1px solid var(--rule);background:var(--card-face-strong);border-radius:3px;padding:14px 16px}.clean__msg{color:var(--ink-soft);max-width:60ch;margin:0;font-size:14px}.clean__link{font-family:var(--font-mono);letter-spacing:.04em;margin-top:8px;font-size:13px;font-weight:600;display:inline-block}@media (prefers-reduced-motion:reduce){.flip__inner{transition:none}.flip__front.is-stamped .stamp{opacity:1;animation:none}.card--struck .finding:not(.finding--kept) .chip{opacity:.55;animation:none}.card--struck .finding:not(.finding--kept) .chip:after{animation:none;transform:scaleX(1)}}
