@font-face{font-family:Inter;src:url(/fonts/inter/InterVariable-Latin.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Grato;src:url(/fonts/grato/GratoGrotesk-Regular.otf) format("opentype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Grato;src:url(/fonts/grato/GratoGrotesk-Medium.otf) format("opentype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Grato;src:url(/fonts/grato/GratoGrotesk-Bold.otf) format("opentype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Grato;src:url(/fonts/grato/GratoGrotesk-Black.otf) format("opentype");font-style:normal;font-weight:900;font-display:swap}:root,:root[data-theme=light]{--background:#f3f0ff;--foreground:#02020a;--card:#ffffff;--muted:#f0f0f4;--muted-foreground:#62626c;--border:rgba(2,2,10,0.08);--input:#d1d5db;--ring:#05204a;--primary:#007aff;--primary-hover:#006ee6;--primary-foreground:#ffffff;--radar-yellow:#fff07c;--accent-active-foreground:#02020a;--status-done:#22c55e;--status-danger:#dc2626;--status-danger-foreground:#991b1b;--strong-action-hover:#1a1a22;--score-track:#e5e7eb;--drop-overlay:rgba(190,216,255,0.58);--radius-control:6px;--radius-card:10px;--radius-menu:12px;--radius-panel:16px;--radius-pill:9999px;--shadow-card:0 1px 2px rgba(2,2,10,0.05),0 10px 30px rgba(2,2,10,0.04);--shadow-drawer:0 24px 80px rgba(2,2,10,0.18);--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:"Grato","Inter",sans-serif}:root[data-theme=dark]{--background:#100e19;--foreground:#f8f6ff;--card:#1a1726;--muted:#242031;--muted-foreground:#aaa5b8;--border:rgba(248,246,255,0.11);--input:#514b61;--ring:#80b6ff;--primary:#5ba3ff;--primary-hover:#7bb5ff;--primary-foreground:#071528;--radar-yellow:#fff07c;--accent-active-foreground:#02020a;--status-done:#4ade80;--status-danger:#ff6b6b;--status-danger-foreground:#ff9b9b;--strong-action-hover:#ded9ed;--score-track:#3a3548;--drop-overlay:rgba(30,55,91,0.7);--shadow-card:0 1px 2px rgba(0,0,0,0.24),0 18px 48px rgba(0,0,0,0.22);--shadow-drawer:0 28px 90px rgba(0,0,0,0.56)}:root:not([data-theme]) .festival-shell[data-brand],:root[data-theme=light] .festival-shell[data-brand]{--background:var(--brand-light-background);--foreground:var(--brand-light-foreground);--card:var(--brand-light-card);--muted:var(--brand-light-muted);--muted-foreground:var(--brand-light-muted-foreground);--border:var(--brand-light-border);--input:var(--brand-light-input);--ring:var(--brand-light-ring);--primary:var(--brand-light-primary);--primary-hover:var(--brand-light-primary-hover);--primary-foreground:var(--brand-light-primary-foreground);--radar-yellow:var(--brand-light-accent);--accent-active-foreground:var(--brand-light-accent-foreground);--score-track:var(--brand-light-score-track);--drop-overlay:var(--brand-light-drop-overlay)}:root[data-theme=dark] .festival-shell[data-brand]{--background:var(--brand-dark-background);--foreground:var(--brand-dark-foreground);--card:var(--brand-dark-card);--muted:var(--brand-dark-muted);--muted-foreground:var(--brand-dark-muted-foreground);--border:var(--brand-dark-border);--input:var(--brand-dark-input);--ring:var(--brand-dark-ring);--primary:var(--brand-dark-primary);--primary-hover:var(--brand-dark-primary-hover);--primary-foreground:var(--brand-dark-primary-foreground);--radar-yellow:var(--brand-dark-accent);--accent-active-foreground:var(--brand-dark-accent-foreground);--score-track:var(--brand-dark-score-track);--drop-overlay:var(--brand-dark-drop-overlay)}*{box-sizing:border-box;margin:0}html{min-width:320px;background:var(--background);color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{min-height:100vh;background:var(--background);color:var(--foreground);font:15px/1.55 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font:inherit}button{border:0;cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid color-mix(in srgb,var(--ring) 28%,transparent);outline-offset:3px}.festival-shell{position:relative;z-index:0;min-height:100vh;width:min(100%,1120px);margin:0 auto;padding:28px 32px 96px;color:var(--foreground)}.festival-shell[data-brand=warsaw-glitch]:before{position:fixed;z-index:-1;inset:-18vmax;background:radial-gradient(circle at 50% 44%,rgba(194,31,51,.14) 0,rgba(194,31,51,.07) 28%,transparent 61%);content:"";opacity:.72;pointer-events:none;transform:scale(.94);transform-origin:50% 44%;animation:warsaw-glow-breathe 32s cubic-bezier(.45,0,.55,1) infinite alternate;will-change:opacity,transform}:root[data-theme=light] .festival-shell[data-brand=warsaw-glitch]:before{opacity:.52}.page-drop-overlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:var(--drop-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none}.page-drop-prompt{display:grid;justify-items:center;grid-gap:22px;gap:22px;text-align:center}.page-drop-prompt p{color:var(--foreground);font-family:var(--font-display);font-size:clamp(34px,6vw,72px);font-weight:900;letter-spacing:-.045em;line-height:.95}.page-drop-eye{display:grid;width:86px;height:84px;place-items:center;color:var(--foreground)}.page-drop-eye svg{display:block;width:100%;height:100%;fill:currentColor}.app-header{justify-content:space-between;gap:24px}.app-header,.brand-lockup{display:flex;align-items:center}.brand-lockup{min-width:0}.brand-logo{display:block;width:156px;height:auto}.brand-collab-x{margin:0 12px;color:var(--muted-foreground);font-size:20px;font-weight:500;line-height:1}.warsaw-wordmark{display:grid;color:var(--foreground);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:15px;font-weight:900;letter-spacing:.14em;line-height:.92;text-transform:uppercase}.warsaw-wordmark span:last-child{letter-spacing:.22em}:root[data-theme=dark] .brand-logo{filter:brightness(0) invert(1)}.brand-divider{width:1px;height:24px;margin:0 16px;background:var(--border)}.product-name{overflow:hidden;color:var(--muted-foreground);font-size:14px;font-weight:600;line-height:1;white-space:nowrap}.btn-ghost,.btn-primary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:var(--radius-pill);padding:10px 20px;font-weight:700;transition:background-color .15s ease,color .15s ease,transform .15s ease}.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost:active,.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{cursor:default;opacity:.5}.btn-ghost{gap:8px;border:1px solid var(--border);background:var(--card);color:var(--foreground)}.btn-ghost:hover{background:var(--muted)}.btn-ghost svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}.intro{max-width:830px;margin:88px 0 42px}.eyebrow{width:-moz-fit-content;width:fit-content;margin-bottom:18px;border-radius:var(--radius-pill);background:var(--radar-yellow);padding:7px 12px;color:var(--accent-active-foreground);font-size:12px;font-weight:800;letter-spacing:.04em;line-height:1;text-transform:uppercase}.intro h1{max-width:820px;font-family:var(--font-display);font-size:clamp(42px,6.2vw,68px);font-weight:900;letter-spacing:-.045em;line-height:.98}.tagline{max-width:720px;margin-top:24px;color:var(--muted-foreground);font-size:16px;line-height:1.65}.results,.workspace{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--card);box-shadow:var(--shadow-card)}.workspace{padding:18px}.dropzone{display:grid;min-height:320px;place-items:center;border:1.5px dashed var(--input);border-radius:var(--radius-card);background:var(--muted);padding:48px 24px;text-align:center;transition:border-color .15s ease,background-color .15s ease}.dropzone.drag{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 5%,var(--muted))}.dropzone.busy{min-height:250px;border-style:solid;border-color:var(--border);background:var(--card)}.dropzone-content{display:flex;max-width:440px;flex-direction:column;align-items:center;gap:22px}.upload-icon{display:grid;width:64px;height:64px;place-items:center;border-radius:var(--radius-menu);background:var(--radar-yellow)}.upload-icon svg{width:28px;height:28px;fill:none;stroke:var(--accent-active-foreground);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.dropzone .file-name{overflow-wrap:anywhere;color:var(--foreground);font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.dropzone-hint{margin-top:6px;color:var(--muted-foreground);font-size:14px}.progress-content{display:grid;width:min(100%,650px);grid-template-columns:auto minmax(0,1fr);align-items:center;grid-gap:24px;gap:24px;text-align:left}.progress-icon{display:grid;width:64px;height:64px;place-items:center;border-radius:var(--radius-menu);background:var(--radar-yellow)}.progress-icon span{width:27px;height:27px;border:3px solid color-mix(in srgb,var(--accent-active-foreground) 18%,transparent);border-top-color:var(--accent-active-foreground);border-radius:50%;animation:spin .9s linear infinite}.progress-copy{min-width:0}.progress-label{margin-bottom:5px;color:var(--muted-foreground);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.progress-track{height:7px;overflow:hidden;margin:18px 0 9px;border-radius:var(--radius-pill);background:var(--muted)}.progress-fill{height:100%;border-radius:inherit;background:var(--primary);transition:width .3s ease}.status-line{color:var(--muted-foreground);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sensitivity-row{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:18px 6px 0}.sensitivity-copy{display:grid;grid-gap:2px;gap:2px}.sensitivity-copy label{color:var(--foreground);font-size:13px;font-weight:700}.sensitivity-copy span{color:var(--muted-foreground);font-size:12px}.range-control{display:grid;min-width:min(100%,310px);grid-gap:6px;gap:6px}.range-control input[type=range]{width:100%;accent-color:var(--primary)}.range-labels{display:grid;grid-template-columns:repeat(3,1fr);color:var(--muted-foreground);font-size:10px;line-height:1.2}.range-labels span:nth-child(2){text-align:center}.range-labels span:last-child{text-align:right}.error-box{margin:16px 6px 0;border:1px solid color-mix(in srgb,var(--status-danger) 26%,transparent);border-radius:var(--radius-card);background:color-mix(in srgb,var(--status-danger) 6%,var(--card));padding:13px 16px;color:var(--status-danger-foreground);font-size:13px}.results{margin-top:24px;padding:26px}.results-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;grid-gap:12px;gap:12px}.btn-report{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:var(--radius-card);background:var(--foreground);padding:0 18px;color:var(--card);font-size:13px;font-weight:750;white-space:nowrap}.btn-report:hover:not(:disabled){background:var(--strong-action-hover)}.btn-report:disabled{cursor:wait;opacity:.62}.btn-report svg{width:18px;height:18px;fill:none;stroke:var(--radar-yellow);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.report-error{margin-top:10px;border:1px solid color-mix(in srgb,var(--status-danger) 26%,transparent);border-radius:var(--radius-card);background:color-mix(in srgb,var(--status-danger) 6%,var(--card));padding:11px 14px;color:var(--status-danger-foreground);font-size:12px}.report-empty{border:1px solid color-mix(in srgb,var(--status-done) 28%,transparent);border-radius:var(--radius-card);background:color-mix(in srgb,var(--status-done) 6%,var(--card));padding:22px;color:var(--muted-foreground);font-size:13px;font-weight:600}.verdict{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--muted);padding:16px 18px;font-weight:650}.verdict.found{border-color:color-mix(in srgb,var(--primary) 24%,transparent);background:color-mix(in srgb,var(--primary) 5%,var(--card))}.verdict.clean{border-color:color-mix(in srgb,var(--status-done) 28%,transparent);background:color-mix(in srgb,var(--status-done) 6%,var(--card))}.verdict-dot{width:9px;height:9px;flex:0 0 auto;margin-top:7px;border-radius:50%;background:var(--primary)}.verdict.clean .verdict-dot{background:var(--status-done)}h3.section{margin:30px 0 12px;color:var(--muted-foreground);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.ip-card{overflow:hidden;margin-bottom:18px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--card)}.ip-content{padding:24px}.ip-name{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.025em;line-height:1.1}.ip-summary{margin-top:5px;font-size:13px;font-weight:600}.ip-meta,.ip-summary{color:var(--muted-foreground)}.ip-meta{margin-top:12px;font-size:12px}.ip-findings{border-top:1px solid var(--border)}.ip-finding{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);min-width:0}.ip-finding+.ip-finding{border-top:1px solid var(--border)}.ip-occurrence{position:relative;min-width:0;overflow:hidden;border-right:1px solid var(--border);background:#02020a}.ip-occurrence img{object-fit:contain}.detection-box{--detection-color:#22c55e;position:absolute;z-index:2;border:2px solid var(--detection-color);background:rgba(255,255,255,.1);pointer-events:none}.detection-box.high{--detection-color:#ef4444}.detection-box.medium{--detection-color:#f59e0b}.detection-label{position:absolute;left:-2px;bottom:calc(100% + 2px);display:grid;width:max-content;max-width:min(240px,70vw);border-radius:var(--radius-control);background:var(--detection-color);padding:5px 8px;color:#ffffff;font-size:10px;line-height:1.25}.detection-label strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.detection-label.align-right{right:-2px;left:auto}.detection-label.below{top:calc(100% + 2px);bottom:auto}.occurrence-time{position:absolute;z-index:3;bottom:10px;border-radius:var(--radius-control);padding:4px 8px;color:#ffffff;font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:750;left:10px;background:rgba(2,2,10,.78)}.scene-score{position:relative;display:grid;align-content:start;justify-items:end;color:#22c55e;padding:12px 12px 64px;text-align:right}.score-summary{display:flex;align-items:center;gap:14px}.remove-finding{position:absolute;right:12px;bottom:12px;display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--card);color:var(--muted-foreground)}.remove-finding:hover{border-color:color-mix(in srgb,var(--status-danger) 35%,var(--border));background:color-mix(in srgb,var(--status-danger) 7%,var(--card));color:var(--status-danger)}.remove-finding:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent);outline-offset:2px}.remove-finding svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.scene-score.medium{color:#f97316}.scene-score.high{color:#ef4444}.score-ring{position:relative;width:84px;height:84px}.score-ring svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.score-ring circle{fill:none;stroke-width:8}.score-ring-track{stroke:var(--score-track)}.score-ring-value{stroke:currentColor;stroke-linecap:round}.score-ring strong{position:absolute;inset:0;display:grid;place-items:center;color:var(--foreground);font-size:22px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.scene-score span{color:currentColor;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}dialog{width:min(92vw,460px);margin:auto;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--card);box-shadow:var(--shadow-drawer);padding:26px;color:var(--foreground)}dialog::-webkit-backdrop{background:rgba(2,2,10,.5)}dialog::backdrop{background:rgba(2,2,10,.5)}.dialog-heading{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:14px;gap:14px;margin-bottom:20px}.dialog-icon{display:grid;width:40px;height:40px;place-items:center;border-radius:var(--radius-card);background:var(--radar-yellow);color:var(--accent-active-foreground)}.dialog-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}dialog h2{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.025em;line-height:1.15}dialog p{margin-top:4px;color:var(--muted-foreground);font-size:13px}.appearance-settings{min-width:0;margin:0;border:0;padding:0}.api-key-settings summary,.appearance-settings legend{color:var(--foreground);font-size:13px;font-weight:750}.appearance-settings>p{margin:2px 0 12px}.appearance-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.appearance-option{display:grid;min-width:0;min-height:88px;place-items:center;grid-gap:7px;gap:7px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--muted);padding:12px 8px;color:var(--muted-foreground);font-size:12px;font-weight:700;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.appearance-option:hover{border-color:color-mix(in srgb,var(--primary) 46%,var(--border));color:var(--foreground)}.appearance-option.selected{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--card));color:var(--foreground);box-shadow:inset 0 0 0 1px var(--primary)}.appearance-option:focus-visible{outline:3px solid color-mix(in srgb,var(--ring) 28%,transparent);outline-offset:2px}.appearance-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--card);color:var(--foreground)}.appearance-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.api-key-settings{margin:20px 0 0;border-top:1px solid var(--border);padding-top:16px}.api-key-settings summary{cursor:pointer;list-style-position:outside}.api-key-settings p{margin-bottom:10px}dialog input{width:100%;margin-bottom:0;border:1px solid var(--input);border-radius:var(--radius-control);padding:11px 12px;background:var(--card);color:var(--foreground)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}@keyframes spin{to{transform:rotate(1turn)}}@keyframes warsaw-glow-breathe{to{opacity:.92;transform:scale(1.07)}}@media (max-width:720px){.festival-shell{padding:20px 16px 64px}.brand-logo{width:130px}.brand-collab-x{margin:0 8px}.warsaw-wordmark{font-size:12px}.brand-divider{height:20px;margin:0 10px}.product-name{font-size:12px}.btn-ghost{min-width:44px;padding:10px}.app-header>.btn-ghost span{display:none}.intro{margin:64px 0 30px}.intro h1{font-size:clamp(38px,12vw,52px)}.tagline{margin-top:20px;font-size:15px}.workspace{padding:10px}.dropzone{min-height:300px;padding:36px 18px}.progress-content{grid-template-columns:1fr;justify-items:center;text-align:center}.progress-copy{width:100%}.sensitivity-row{align-items:stretch;flex-direction:column;gap:14px;padding:16px 4px 4px}.range-control{min-width:0}.results{padding:16px}.results-toolbar{grid-template-columns:1fr}.btn-report{min-height:48px}.ip-finding{grid-template-columns:minmax(0,1fr) 148px}.scene-score{padding:9px 9px 52px}.score-summary{gap:7px}.remove-finding{right:9px;bottom:9px;width:30px;height:30px}.score-ring{width:64px;height:64px}.score-ring strong{font-size:15px}}@media (max-width:440px){.brand-divider,.product-name{display:none}.ip-content{padding:20px}.ip-finding{grid-template-columns:minmax(0,1fr) 132px}.scene-score span{font-size:7px}.score-ring{width:56px;height:56px}.score-ring strong{font-size:13px}}@media (prefers-reduced-motion:reduce){.festival-shell[data-brand=warsaw-glitch]:before{animation:none}*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}