:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--bg-primary:#0a0e14;--bg-secondary:#0f1419;--bg-elevated:#151b24;--border-subtle:#ffffff14;--border-strong:#ffffff29;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-tertiary:#556068;--accent:#4a9eff;--accent-glow:#4a9eff26;--success:#3fb950;--warning:#d29922;--danger:#f85149;--font-display:"Space Grotesk", -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-display);background-image:radial-gradient(circle at 20% 0%, var(--accent-glow) 0%, transparent 50%), radial-gradient(circle at 80% 100%, #4a9eff0d 0%, transparent 50%);min-height:100vh}body:before{content:"";background-image:linear-gradient(var(--border-subtle) 1px, transparent 1px), linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px);pointer-events:none;z-index:0;opacity:.4;background-size:40px 40px;position:fixed;inset:0}.app{z-index:1;flex-direction:column;justify-content:center;align-items:center;max-width:1200px;min-height:100vh;margin:0 auto;padding:2rem;display:flex;position:relative}.app h1{letter-spacing:-.03em;background:linear-gradient(135deg, var(--text-primary) 0%, var(--accent) 100%);-webkit-text-fill-color:transparent;text-align:center;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;padding:.1em 0;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:700;line-height:1.2}.app h1:before{content:"// ";color:var(--text-tertiary);-webkit-text-fill-color:var(--text-tertiary);font-family:var(--font-mono);letter-spacing:0;font-size:.6em;font-weight:400}.upload-zone{border:1px dashed var(--border-strong);background:var(--bg-secondary);cursor:pointer;width:100%;max-width:600px;margin-top:3rem;padding:4rem 2rem;transition:all .3s;display:block;position:relative}.upload-zone:before,.upload-zone:after{content:"";border:1px solid var(--accent);width:20px;height:20px;position:absolute}.upload-zone:before{border-bottom:none;border-right:none;top:-1px;left:-1px}.upload-zone:after{border-top:none;border-left:none;bottom:-1px;right:-1px}.upload-zone:hover{border-color:var(--accent);background:var(--bg-elevated);box-shadow:0 0 40px var(--accent-glow)}.upload-zone-content{text-align:center}.upload-zone-content p{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.02em;font-size:.95rem}.upload-zone-content p:before{content:"> ";color:var(--accent)}.loading-state{border:1px solid var(--border-subtle);background:var(--bg-secondary);flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-width:400px;margin-top:3rem;padding:4rem 5rem;display:flex;position:relative}.loading-state:before,.loading-state:after{content:"";border:1px solid var(--accent);width:20px;height:20px;position:absolute}.loading-state:before{border-bottom:none;border-right:none;top:-1px;left:-1px}.loading-state:after{border-top:none;border-left:none;bottom:-1px;right:-1px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;font-size:.9rem}.loading-state p:after{content:"";width:1ch;animation:1.4s infinite dots;display:inline-block}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.error-state{border:1px solid var(--danger);text-align:center;background:#f851490d;max-width:500px;margin-top:3rem;padding:2.5rem}.error-state p{font-family:var(--font-mono);color:var(--danger);margin-bottom:1.5rem;font-size:.9rem}.error-state p:before{content:"[ERROR] ";opacity:.7}.error-state button{font-family:var(--font-mono);color:var(--text-primary);border:1px solid var(--border-strong);cursor:pointer;letter-spacing:.05em;text-transform:uppercase;background:0 0;padding:.75rem 2rem;font-size:.85rem;transition:all .2s}.error-state button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.results{flex-direction:column;gap:2rem;width:100%;max-width:900px;margin-top:3rem;animation:.6s fadeInUp;display:flex}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-image-section{border:1px solid var(--border-subtle);background:var(--bg-secondary);padding:1rem;position:relative}.result-image-section:before,.result-image-section:after{content:"";border:1px solid var(--accent);width:20px;height:20px;position:absolute}.result-image-section:before{border-bottom:none;border-right:none;top:-1px;left:-1px}.result-image-section:after{border-top:none;border-left:none;bottom:-1px;right:-1px}.bridge-image{object-fit:cover;width:100%;height:auto;max-height:500px;display:block}.identification-card{border:1px solid var(--border-subtle);background:var(--bg-secondary);padding:2rem 2.5rem;position:relative}.identification-card:before{content:"";background:var(--accent);width:3px;height:100%;position:absolute;top:0;left:0}.id-label{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.15em;margin-bottom:.5rem;font-size:.7rem}.id-label:before{content:"[ "}.id-label:after{content:" ]"}.bridge-name{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:.25rem;font-size:2rem;font-weight:700}.bridge-location{font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:1.5rem;font-size:.85rem}.confidence{border-top:1px solid var(--border-subtle);align-items:baseline;gap:.75rem;padding-top:1rem;display:flex}.confidence-label{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.15em;font-size:.7rem}.confidence-value{font-family:var(--font-mono);color:var(--accent);font-size:1.25rem;font-weight:500}.score-card{border:1px solid var(--border-subtle);background:var(--bg-secondary);padding:3rem 2.5rem;position:relative;overflow:hidden}.score-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);height:1px;position:absolute;top:0;left:0;right:0}.score-display{flex-direction:column;align-items:center;gap:1rem;display:flex}.score-label{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.2em;font-size:.75rem}.score-value{background:linear-gradient(135deg, var(--accent) 0%, var(--text-primary) 100%);-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums;letter-spacing:-.04em;-webkit-background-clip:text;background-clip:text;font-size:clamp(4rem,10vw,7rem);font-weight:700;line-height:1}.score-max{color:var(--text-tertiary);-webkit-text-fill-color:var(--text-tertiary);margin-left:.25em;font-size:.3em;font-weight:400}.recommendations-card{border:1px solid var(--border-subtle);background:var(--bg-secondary);padding:2rem 2.5rem}.section-label{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.2em;border-bottom:1px solid var(--border-subtle);margin-bottom:1.5rem;padding-bottom:.75rem;font-size:.75rem}.section-label:before{content:"[ "}.section-label:after{content:" ]"}.recommendations-list{flex-direction:column;gap:1rem;list-style:none;display:flex}.recommendations-list li{font-family:var(--font-display);color:var(--text-secondary);padding-left:1.75rem;font-size:.95rem;line-height:1.6;position:relative}.recommendations-list li:before{content:"→";color:var(--accent);font-family:var(--font-mono);font-weight:500;position:absolute;top:0;left:0}.details-section{border:1px solid var(--border-subtle);background:var(--bg-secondary);overflow:hidden}.details-toggle{width:100%;color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.2em;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:1.5rem 2.5rem;font-size:.8rem;transition:all .2s;display:flex}.details-toggle:hover{color:var(--accent);background:var(--bg-elevated)}.toggle-icon{color:var(--accent);font-size:1.5rem;font-weight:300;line-height:1}.details-content{border-top:1px solid var(--border-subtle);flex-direction:column;gap:1.25rem;padding:1rem 2.5rem 2.5rem;animation:.4s fadeInUp;display:flex}.principle-card{border:1px solid var(--border-subtle);background:var(--bg-primary);padding:1.5rem;position:relative}.principle-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:1rem;margin-bottom:.75rem;padding-bottom:.75rem;display:flex}.principle-id{font-family:var(--font-mono);color:var(--accent);border:1px solid var(--accent);letter-spacing:.05em;padding:.25rem .5rem;font-size:.75rem}.principle-name{color:var(--text-primary);letter-spacing:-.01em;flex:1;font-size:1rem;font-weight:600}.principle-score{font-family:var(--font-mono);color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:500}.score-max-small{color:var(--text-tertiary);font-size:.7em}.principle-reasoning{font-family:var(--font-display);color:var(--text-secondary);font-size:.9rem;line-height:1.6}.back-button{border:1px solid var(--border-strong);color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;background:0 0;align-self:flex-start;padding:.75rem 1.5rem;font-size:.8rem;transition:all .2s}.back-button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.profiler-section{border:1px solid var(--border-subtle);opacity:.75;background:0 0;transition:opacity .2s}.profiler-section:hover{opacity:1}.profiler-toggle{width:100%;color:var(--text-tertiary);font-family:var(--font-mono);letter-spacing:.2em;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:1rem 2rem;font-size:.7rem;transition:color .2s;display:flex}.profiler-toggle:hover{color:var(--accent)}.profiler-toggle:before{content:"[ ";opacity:.5}.profiler-toggle>span:first-child:after{content:" ]";opacity:.5}.toggle-icon-small{color:var(--accent);font-size:1.1rem;font-weight:300;line-height:1}.profiler-content{border-top:1px solid var(--border-subtle);padding:1.25rem 2rem 2rem;animation:.4s fadeInUp}.profiler-grid{flex-direction:column;gap:1.25rem;display:flex}.profiler-field{border-left:2px solid var(--border-subtle);padding-left:1rem;transition:border-color .2s}.profiler-field:hover{border-left-color:var(--accent)}.field-label{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.15em;margin-bottom:.4rem;font-size:.65rem}.field-value{font-family:var(--font-display);color:var(--text-secondary);font-size:.85rem;line-height:1.6}.criteria-nested{border-top:1px dashed var(--border-subtle);margin-top:1.5rem;padding-top:1.5rem}.criteria-toggle{border:1px solid var(--border-subtle);width:100%;color:var(--text-tertiary);font-family:var(--font-mono);letter-spacing:.2em;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.65rem;transition:all .2s;display:flex}.criteria-toggle:hover{border-color:var(--accent);color:var(--accent)}.criteria-content{flex-direction:column;gap:1rem;margin-top:1rem;animation:.3s fadeInUp;display:flex}.criteria-principle{background:var(--bg-primary);border-left:2px solid var(--accent);padding:1rem 1.25rem}.criteria-principle-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:.75rem;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.criteria-id{font-family:var(--font-mono);color:var(--accent);border:1px solid var(--accent);padding:.15rem .4rem;font-size:.65rem}.criteria-name{color:var(--text-primary);font-size:.85rem;font-weight:600}.criteria-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.criteria-list li{font-family:var(--font-mono);color:var(--text-secondary);padding-left:1.25rem;font-size:.75rem;line-height:1.5;position:relative}.criteria-list li:before{content:"·";color:var(--accent);font-weight:700;position:absolute;left:.25rem}
