@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/55c55f0601d81cf3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/26a46d62cd723877-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/97e0cb1ae144a2a9-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/581909926a08bbc8-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_e8ce0c{font-family:Inter,Inter Fallback;font-style:normal}@font-face{font-family:PT Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/df5e9368d28a76aa-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:PT Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/84a5d21698cdcea6-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:PT Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a1471ccaedd577d0-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:PT Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4049f3f580e14086-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:PT Mono Fallback;src:local("Arial");ascent-override:65.76%;descent-override:17.46%;line-gap-override:0.00%;size-adjust:134.59%}.__className_cd548a{font-family:PT Mono,PT Mono Fallback;font-weight:400;font-style:normal}.__variable_cd548a{--font-pt-mono:"PT Mono","PT Mono Fallback"}@tailwind base;@tailwind components;@tailwind utilities;:root{--background:0 0 0;--foreground:248 250 252;--card:15 23 42;--card-foreground:248 250 252;--popover:15 23 42;--popover-foreground:248 250 252;--primary:99 102 241;--primary-foreground:255 255 255;--secondary:30 41 59;--secondary-foreground:248 250 252;--muted:30 41 59;--muted-foreground:148 163 184;--accent:30 41 59;--accent-foreground:248 250 252;--destructive:220 38 38;--destructive-foreground:255 255 255;--border:30 41 59;--input:30 41 59;--ring:99 102 241;--gradient-from:99 102 241;--gradient-to:168 85 247;--shadow-sm:0 1px 2px 0 rgb(0 0 0/0.3);--shadow:0 1px 3px 0 rgb(0 0 0/0.3),0 1px 2px -1px rgb(0 0 0/0.3);--shadow-md:0 4px 6px -1px rgb(0 0 0/0.3),0 2px 4px -2px rgb(0 0 0/0.3);--shadow-lg:0 10px 15px -3px rgb(0 0 0/0.3),0 4px 6px -4px rgb(0 0 0/0.3);--shadow-xl:0 20px 25px -5px rgb(0 0 0/0.3),0 8px 10px -6px rgb(0 0 0/0.3)}*{box-sizing:border-box;padding:0;margin:0}html{scroll-behavior:smooth}body,html{max-width:100vw;height:100vh;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:rgb(var(--background));color:rgb(var(--foreground));line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column}main{flex:1 1;overflow:auto}:focus-visible{outline:2px solid rgb(var(--ring));outline-offset:2px;border-radius:var(--radius)}::selection{background-color:rgb(var(--primary)/.2);color:rgb(var(--primary-foreground))}.bg-card{background-color:rgb(var(--card));color:rgb(var(--card-foreground))}.bg-primary{background-color:rgb(var(--primary));color:rgb(var(--primary-foreground))}.bg-secondary{background-color:rgb(var(--secondary));color:rgb(var(--secondary-foreground))}.bg-muted{background-color:rgb(var(--muted));color:rgb(var(--muted-foreground))}.text-primary{color:rgb(var(--primary))}.text-muted{color:rgb(var(--muted-foreground))}.border-default{border-color:rgb(var(--border))}.gradient-text{background:linear-gradient(135deg,rgb(var(--gradient-from)),rgb(var(--gradient-to)));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-size:200% 200%;animation:gradient-shift 3s ease infinite}.glass{background:rgb(var(--card)/.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgb(var(--border)/.2)}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);font-weight:500;border:none;outline:none;position:relative;overflow:hidden;transition:all .2s ease-out}.btn,.btn-primary{font-size:.875rem;cursor:pointer}.btn-primary{background-color:transparent;color:#9ca3af;border:1px solid #4b5563;padding:.75rem 1.5rem;border-radius:6px;font-family:var(--font-pt-mono),monospace;transition:all .2s ease}.btn-primary:hover{background-color:#1a1a1a;color:#d1d5db;border-color:#6b7280}.btn-primary:disabled{color:#9ca3af;cursor:not-allowed}.btn-primary:disabled,.btn-primary:disabled:hover{background-color:#4b5563}.btn-secondary{background-color:transparent;color:#9ca3af;border:1px solid #4b5563;padding:.75rem 1.5rem;border-radius:6px;font-family:var(--font-pt-mono),monospace;font-size:.875rem;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background-color:#1a1a1a;color:#d1d5db;border-color:#6b7280}.btn-select-all,.btn-select-none{padding:.5rem 1rem;border:1px solid #6366f1;border-radius:.375rem;background:transparent;color:#6366f1;cursor:pointer;transition:all .2s ease;font-size:.875rem}.btn-select-all:hover,.btn-select-none:hover{background:rgba(99,102,241,.1)}.btn-export,.btn-start-over{background-color:transparent;color:#9ca3af;border:1px solid #4b5563;padding:.75rem 1.5rem;border-radius:6px;font-family:var(--font-pt-mono),monospace;font-size:.875rem;cursor:pointer;transition:all .2s ease}.btn-export:hover,.btn-start-over:hover{background-color:#1a1a1a;color:#d1d5db;border-color:#6b7280}.card{background-color:rgb(var(--card));color:rgb(var(--card-foreground));border-radius:calc(var(--radius) * 2);border:1px solid rgb(var(--border));box-shadow:var(--shadow);transition:all .2s ease-out}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}input,select,textarea{background-color:rgb(var(--background));color:rgb(var(--foreground));border:1px solid rgb(var(--border));border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem;transition:all .2s ease-out}input:focus,select:focus,textarea:focus{border-color:rgb(var(--ring));box-shadow:0 0 0 3px rgb(var(--ring)/.1)}a{color:rgb(var(--primary));text-decoration:none;transition:color .2s ease-out}a:hover{color:rgb(var(--primary)/.8);text-decoration:underline}.theme-toggle{position:fixed;top:1.5rem;right:1.5rem;z-index:50;width:3rem;height:3rem;border-radius:50%;background-color:rgb(var(--card));border:1px solid rgb(var(--border));box-shadow:var(--shadow-lg);cursor:pointer;transition:all .2s ease-out;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{box-shadow:var(--shadow-xl);transform:scale(1.05)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:rgb(var(--muted));border-radius:4px}::-webkit-scrollbar-thumb{background:rgb(var(--muted-foreground)/.5);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:rgb(var(--muted-foreground)/.7)}.warning-dialog{margin-top:1.5rem;padding:1.5rem;background-color:rgb(251 191 36/.1);border:1px solid rgb(251 191 36/.3);border-radius:calc(var(--radius) * 2)}.warning-dialog-content{display:flex;align-items:flex-start;gap:.75rem}.warning-icon-container{flex-shrink:0;margin-top:.125rem}.warning-icon{width:16px;height:16px;color:rgb(217 119 6);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.warning-content{flex:1 1}.warning-title{font-size:.875rem;font-weight:500;color:rgb(146 64 14);margin:0;display:flex;align-items:center}.warning-text{margin-top:.5rem;font-size:.875rem;color:rgb(161 98 7)}.warning-text p{margin:0}.warning-text p+p{margin-top:.5rem}.warning-actions{margin-top:1rem;display:flex;gap:.75rem}.warning-btn-confirm{background-color:rgb(217 119 6);color:white;padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;border:none;cursor:pointer;transition:all .2s ease-out}.warning-btn-confirm:hover{background-color:rgb(180 83 9)}.warning-btn-confirm:focus{outline:2px solid rgb(217 119 6);outline-offset:2px}.warning-btn-cancel{background-color:white;color:rgb(146 64 14);padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;border:1px solid rgb(251 191 36/.3);cursor:pointer;transition:all .2s ease-out}.warning-btn-cancel:hover{background-color:rgb(254 240 138/.5)}.warning-btn-cancel:focus{outline:2px solid rgb(217 119 6);outline-offset:2px}[data-theme=dark] .warning-dialog{background-color:rgb(217 119 6/.1);border-color:rgb(217 119 6/.2)}[data-theme=dark] .warning-title{color:rgb(251 191 36)}[data-theme=dark] .warning-text{color:rgb(250 204 21)}[data-theme=dark] .warning-btn-cancel{background-color:rgb(var(--card));color:rgb(251 191 36);border-color:rgb(217 119 6/.3)}[data-theme=dark] .warning-btn-cancel:hover{background-color:rgb(217 119 6/.1)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background-color:rgb(var(--card));border:1px solid rgb(var(--border));border-radius:calc(var(--radius) * 3);text-align:center}.loading-spinner{width:2.5rem;height:2.5rem;border:3px solid rgb(var(--muted));border-top-color:rgb(var(--primary));border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.loading-text{color:rgb(var(--muted-foreground));font-size:1rem}.error-state{background-color:rgb(var(--card));border:1px solid rgb(var(--destructive)/.3);border-radius:calc(var(--radius) * 3);padding:2rem;margin-bottom:2rem}.error-title{font-size:1.125rem;font-weight:600;color:rgb(var(--destructive));margin-bottom:.5rem}.error-message{font-size:.875rem;color:rgb(var(--muted-foreground))}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background-color:rgb(var(--card));border:1px solid rgb(var(--border));border-radius:calc(var(--radius) * 3);text-align:center}.empty-icon{width:4rem;height:4rem;color:rgb(var(--muted-foreground)/.5);margin-bottom:1.5rem}.empty-title{font-size:1.25rem;font-weight:600;color:rgb(var(--foreground));margin-bottom:.75rem}.empty-description{color:rgb(var(--muted-foreground));font-size:1rem;max-width:400px}@keyframes gradient-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:500px;transform:translateY(0)}}@keyframes slideUp{0%{opacity:1;max-height:500px;transform:translateY(0)}to{opacity:0;max-height:0;transform:translateY(-10px)}}.traits-page{min-height:100vh;background:linear-gradient(135deg,rgb(var(--background)) 0,rgb(var(--muted)) 100%);padding:2rem 0}.traits-container{max-width:1400px;margin:0 auto;padding:0 1.5rem}.traits-header{text-align:center;margin-bottom:3rem}.traits-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem}.traits-back-link{display:inline-flex;align-items:center;gap:.5rem;color:rgb(var(--muted-foreground));text-decoration:none;font-size:.875rem;font-weight:500;padding:.5rem 1rem;border-radius:var(--radius);border:1px solid rgb(var(--border));background-color:rgb(var(--card));transition:all .2s ease-out}.traits-back-link:hover{color:rgb(var(--primary));border-color:rgb(var(--primary)/.3);background-color:rgb(var(--primary)/.05);transform:translateY(-1px);text-decoration:none}.traits-title{font-size:3.5rem;font-weight:800;margin-bottom:1rem;letter-spacing:-.025em}.traits-subtitle{font-size:1.25rem;color:rgb(var(--muted-foreground));max-width:600px;margin:0 auto;line-height:1.7}.collection-selector{background-color:rgb(var(--card));border:1px solid rgb(var(--border));border-radius:calc(var(--radius) * 3);padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow-sm);transition:all .2s ease-out}.collection-selector:hover{box-shadow:var(--shadow-md)}.selector-label{display:block;font-size:.875rem;font-weight:600;color:rgb(var(--foreground));margin-bottom:.75rem;letter-spacing:.025em}.selector-dropdown{width:100%;padding:.875rem 1rem;font-size:1rem;border:1px solid rgb(var(--border));border-radius:calc(var(--radius) * 1.5);background-color:rgb(var(--background));color:rgb(var(--foreground));transition:all .2s ease-out;box-shadow:var(--shadow-sm)}.selector-dropdown:focus{border-color:rgb(var(--primary));box-shadow:0 0 0 3px rgb(var(--primary)/.1);outline:none}.selector-empty{margin-top:.75rem;font-size:.875rem;color:rgb(var(--muted-foreground));text-align:center}.collection-info{background:linear-gradient(135deg,rgb(var(--primary)/.05) 0,rgb(var(--accent)) 100%);border:1px solid rgb(var(--primary)/.2);border-radius:calc(var(--radius) * 3);padding:2rem;margin-bottom:2rem;position:relative;overflow:hidden}.collection-info:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,rgb(var(--gradient-from)),rgb(var(--gradient-to)))}.collection-name{font-size:1.75rem;font-weight:700;color:rgb(var(--foreground));margin-bottom:1rem}.collection-stats{flex-wrap:wrap;gap:2rem;margin-bottom:1rem}.collection-stats,.stat-item{display:flex;align-items:center}.stat-item{gap:.5rem}.stat-label{font-size:.875rem;color:rgb(var(--muted-foreground))}.stat-value{font-size:1.125rem;font-weight:700;color:rgb(var(--primary))}.collection-note{font-size:.875rem;color:rgb(var(--muted-foreground));margin-top:.5rem}.collection-badge{display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;color:rgb(var(--primary));background-color:rgb(var(--primary)/.1);padding:.25rem .625rem;border-radius:calc(var(--radius) * 2);border:1px solid rgb(var(--primary)/.2)}.traits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));grid-gap:1.5rem;gap:1.5rem}.trait-card{background-color:rgb(var(--card));border:1px solid rgb(var(--border));border-radius:calc(var(--radius) * 2);overflow:hidden;box-shadow:var(--shadow-sm);transition:all .2s ease-out}.trait-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.trait-header{display:block;align-items:center;justify-content:space-between;padding:.25rem;cursor:pointer;background-color:rgb(var(--card));border:none;width:100%;text-align:center;transition:all .2s ease-out;position:relative}.trait-header:hover{background-color:rgb(var(--muted)/.5)}.trait-header:focus{outline:2px solid rgb(var(--ring));outline-offset:-2px}.trait-name{font-size:1.125rem;font-weight:600;color:rgb(var(--foreground));margin-bottom:.25rem;letter-spacing:.025em}.trait-count{font-size:.875rem}.trait-count,.trait-icon{color:rgb(var(--muted-foreground))}.trait-icon{width:1.25rem;height:1.25rem;transition:all .2s ease-out;flex-shrink:0}.trait-icon.expanded{transform:rotate(180deg);color:rgb(var(--primary))}.trait-values{border-top:1px solid rgb(var(--border));max-height:500px;overflow-y:auto;background-color:rgb(var(--muted)/.2)}.trait-values::-webkit-scrollbar{width:6px}.trait-values::-webkit-scrollbar-track{background:transparent}.trait-values::-webkit-scrollbar-thumb{background:rgb(var(--muted-foreground)/.3);border-radius:3px}.trait-values.expanding{animation:slideDown .3s ease-out forwards}.trait-values.collapsing{animation:slideUp .3s ease-out forwards}.trait-value-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid rgb(var(--border)/.5);transition:all .2s ease-out}.trait-value-item:last-child{border-bottom:none}.trait-value-item:hover{background-color:rgb(var(--card))}.trait-value-info{flex:1 1;min-width:0}.trait-value-name{font-size:1rem;font-weight:500;color:rgb(var(--foreground));margin-bottom:.25rem;word-break:break-word}.trait-value-stats{font-size:.875rem;color:rgb(var(--muted-foreground))}.trait-value-rarity{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0;margin-left:1rem}.rarity-score{font-size:1.25rem;font-weight:700;color:rgb(var(--primary));line-height:1}.rarity-label{font-size:.75rem;color:rgb(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em;font-weight:500}.rarity-page{background-color:#000000;background-image:url(/rara_avis-logo-2025-transparent.png);background-size:contain;background-position:50%;background-repeat:no-repeat;background-attachment:fixed;color:#d1d5db;font-family:var(--font-pt-mono),monospace;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative}.rarity-page:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.9);pointer-events:none;z-index:1}.rarity-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:1400px;width:100%;padding:0 1rem;position:relative;z-index:2;min-height:calc(100vh - 5rem - 6rem);flex:1 1;overflow:hidden}.rarity-header{margin-bottom:2.8rem}.rarity-main-title{font-size:1.5rem;font-weight:400;color:#d1d5db;letter-spacing:.1em;line-height:1.2;margin:0}.rarity-footer{display:flex;flex-direction:column;gap:1rem}.rarity-tagline{font-size:1rem;color:#d1d5db;font-weight:400;letter-spacing:.1em;line-height:1.3}.rarity-description{font-size:.75rem;color:#9ca3af;font-weight:400;letter-spacing:.05em;line-height:1.4}.file-dropzone{width:100%;max-width:600px;min-height:100px;border:2px dashed #4b5563;border-radius:12px;background-color:#111111;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;margin-bottom:3rem;position:relative;overflow:hidden}.file-dropzone:hover{border-color:#6b7280;background-color:#1a1a1a}.file-dropzone.drag-active{border-color:#9ca3af;background-color:#1f1f1f;transform:scale(1.02)}.dropzone-content{padding:2rem;width:100%}.dropzone-text{font-size:1rem;color:#9ca3af;font-weight:400;letter-spacing:.05em}.file-selected{display:flex;flex-direction:column;align-items:center;gap:.75rem}.file-icon{font-size:2.5rem}.file-name{font-size:1.125rem;color:#d1d5db;font-weight:400;word-break:break-all}.file-size{font-size:.875rem;color:#9ca3af}.file-processing{display:flex;flex-direction:column;align-items:center;gap:1rem}.processing-spinner{font-size:2rem;animation:spin 1s linear infinite}.processing-text{font-size:1rem;color:#9ca3af;font-weight:400;letter-spacing:.05em}.calculation-progress{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:50vh}.progress-content{max-width:500px;width:100%}.progress-phase{font-size:1.25rem;color:#d1d5db;margin-bottom:2rem;font-weight:400;letter-spacing:.05em}.progress-bar-container{width:100%;height:8px;background-color:#374151;border-radius:4px;overflow:hidden;margin-bottom:1rem}.progress-bar-fill{height:100%;background-color:#3b82f6;transition:width .3s ease;border-radius:4px}.progress-stats{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;color:#9ca3af;margin-bottom:1rem}.progress-message{font-size:.8rem;color:#6b7280;text-align:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background-color:#111111;border:1px solid #4b5563;border-radius:12px;max-width:800px;width:90%;max-height:80vh;overflow-y:auto;font-family:var(--font-pt-mono),monospace}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #4b5563}.modal-title{font-size:1.25rem;font-weight:400;color:#d1d5db;margin:0;letter-spacing:.05em}.modal-close{background:none;border:none;color:#9ca3af;font-size:1.5rem;cursor:pointer;padding:.25rem;transition:color .2s ease}.modal-close:hover{color:#d1d5db}.modal-body{padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #4b5563}.validation-status{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background-color:#1a1a1a;border-radius:8px}.status-indicator{width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem}.status-indicator.valid{background-color:#10b981;color:white}.status-indicator.invalid{background-color:#ef4444;color:white}.status-text{font-size:1.125rem;font-weight:400;color:#d1d5db}.validation-details{display:flex;flex-direction:column;gap:1rem}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background-color:#1a1a1a;border-radius:6px}.detail-label{font-size:.875rem;color:#9ca3af}.detail-value{font-size:.875rem;color:#d1d5db;font-weight:400}.sample-item{margin-top:1rem}.sample-label{font-size:.875rem;color:#9ca3af;margin-bottom:.5rem}.sample-json{background-color:#1a1a1a;border:1px solid #4b5563;border-radius:6px;padding:1rem;font-family:var(--font-pt-mono),monospace;font-size:.75rem;color:#d1d5db;overflow-x:auto;white-space:pre-wrap;max-height:200px;overflow-y:auto}.validation-errors{margin-top:1rem;padding:1rem;background-color:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:6px}.errors-label{font-size:.875rem;color:#ef4444;font-weight:400;margin-bottom:.5rem}.error-item{font-size:.8rem;color:#fca5a5;margin-bottom:.25rem}.step-description{margin-bottom:1.5rem}.step-description p{font-size:.875rem;color:#9ca3af;margin-bottom:.5rem}.selected-field-info{font-size:.75rem;color:#d1d5db;background-color:#1a1a1a;padding:.5rem;border-radius:4px;border:1px solid #4b5563}.attribute-key-selection{display:flex;flex-direction:column;gap:.75rem}.attribute-key-button{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:#1a1a1a;border:1px solid #4b5563;border-radius:6px;cursor:pointer;transition:all .2s ease;font-family:var(--font-pt-mono),monospace}.attribute-key-button:hover{background-color:#2a2a2a;border-color:#6b7280}.key-name{font-size:1rem;color:#d1d5db;font-weight:400}.key-preview{font-size:.75rem;color:#9ca3af}.trait-type-selection{display:flex;flex-direction:column;gap:1rem}.selection-controls{display:flex;gap:.5rem;margin-bottom:1rem}.trait-type-list{max-height:300px;overflow-y:auto;border:1px solid #4b5563;border-radius:6px;background-color:#1a1a1a}.trait-type-checkbox{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid #4b5563}.trait-type-checkbox:last-child{border-bottom:none}.trait-type-checkbox:hover{background-color:#2a2a2a}.trait-type-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:#3b82f6;cursor:pointer}.trait-type-name{font-size:.875rem;color:#d1d5db;font-family:var(--font-pt-mono),monospace}.selection-summary{margin-top:1rem;padding:.75rem;background:rgba(55,65,81,.5);border-radius:.5rem;text-align:center;color:#d1d5db;font-size:.9rem}.trait-count-info{font-size:.75rem;color:#9ca3af;background-color:#1f2937;padding:.5rem;border-radius:4px;margin-top:.5rem;border:1px solid #374151}.validation-summary{font-size:.875rem;color:#d1d5db;padding:.75rem;border-radius:6px;margin-top:.75rem}.trait-validation-list,.validation-summary{background-color:#1a1a1a;border:1px solid #4b5563}.trait-validation-list{max-height:400px;overflow-y:auto;border-radius:6px;margin-top:1rem}.trait-validation-item{padding:1rem;border-bottom:1px solid #374151;transition:background-color .2s ease}.trait-validation-item:last-child{border-bottom:none}.trait-validation-item:hover{background-color:#2a2a2a}.trait-validation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.trait-validation-info{flex:1 1}.trait-validation-name{font-size:1rem;color:#d1d5db;font-weight:500;margin-bottom:.25rem}.trait-validation-stats{font-size:.75rem;color:#9ca3af}.trait-unique-count{background-color:#3b82f6;color:#fff;font-size:.7rem;font-weight:600;padding:.25rem .5rem;border-radius:12px;text-transform:uppercase;letter-spacing:.025em}.trait-unique-values{margin-top:.75rem}.unique-values-label{font-size:.8rem;color:#9ca3af;margin-bottom:.5rem;font-weight:500}.unique-values-list{font-size:.75rem;color:#d1d5db;line-height:1.5;max-height:150px;overflow-y:auto;padding:.5rem;background-color:#111111;border-radius:4px;border:1px solid #374151}.unique-value{word-break:break-word}.results-header{text-align:center;margin-bottom:2rem;width:100%}.results-summary{display:flex;justify-content:space-between;gap:2rem;margin:1.5rem 0}.summary-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.summary-label{font-size:.75rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.summary-value{font-size:1.25rem;color:#d1d5db;font-weight:400}.results-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;flex-wrap:wrap}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:2rem;width:100%;justify-content:start;align-items:start;overflow:auto}.nft-card{background-color:#1a1a1a;border:1px solid #4b5563;border-radius:4px;padding:.75rem;transition:all .2s ease;position:relative}.nft-card:hover{background-color:#2a2a2a;border-color:#6b7280;transform:translateY(-1px)}.nft-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.nft-rank{font-size:.875rem;color:#3b82f6;font-weight:500}.nft-score{font-size:.75rem;color:#d1d5db;background-color:#374151;padding:.125rem .375rem;border-radius:3px;cursor:pointer;transition:all .2s ease}.nft-score:hover{background-color:#4b5563;transform:scale(1.05)}.nft-name{font-size:.75rem;color:#d1d5db;font-weight:400;word-break:break-word;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.nft-traits{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.25rem;gap:.25rem}.trait-item{background-color:rgba(55,65,81,.2);border:1px solid #374151;border-radius:3px}.trait-info{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.125rem;flex:1 1;min-width:0;padding:.25rem .35rem}.trait-type{font-size:.55rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-weight:500;line-height:1.1}.trait-type,.trait-value{word-break:break-word;text-align:left;width:100%}.trait-value{font-size:.8rem;color:#d1d5db;font-weight:400;line-height:1.2}.trait-rarity{font-size:.65rem;color:#3b82f6;font-weight:500;padding:.05rem .25rem;border-radius:2px;flex-shrink:0}.trait-stats{display:flex;justify-content:space-between;align-items:center;gap:.25rem;font-size:.65rem;color:#d1d5db;line-height:1;background-color:#37414E;max-height:0;opacity:0;overflow:hidden;padding:0;transition:max-height .3s ease,opacity .3s ease,padding .3s ease}.nft-card.score-hovered .trait-stats{max-height:1.5rem;opacity:1;padding:.25rem;animation:slideDown .3s ease-out forwards}.no-name-option{margin-bottom:1rem}.no-name-button{width:100%;padding:.75rem 1rem;border:2px solid #374151;border-radius:.5rem;background:transparent;color:#d1d5db;cursor:pointer;transition:all .2s ease;text-align:left}.no-name-button:hover{border-color:#6366f1;background:rgba(99,102,241,.1)}.no-name-button.selected{border-color:#6366f1;background:rgba(99,102,241,.2)}.column-headers.clickable{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:.5rem;gap:.5rem}.column-header.clickable{padding:.75rem;border:2px solid #374151;border-radius:.5rem;background:transparent;cursor:pointer;transition:all .2s ease;text-align:center}.column-header.clickable:hover{border-color:#6366f1;background:rgba(99,102,241,.1);transform:translateY(-2px);box-shadow:0 4px 12px rgba(99,102,241,.2)}.column-header.clickable.selected{border-color:#6366f1;background:rgba(99,102,241,.2);box-shadow:0 0 0 1px rgba(99,102,241,.5)}.header-name{font-weight:600;font-size:.9rem;color:#f9fafb;margin-bottom:.25rem}.header-sample{font-size:.75rem;color:#9ca3af;font-style:italic}.header-container{justify-content:space-between;width:100%;height:100%;position:relative;border-bottom:1px solid #374151}.header-container,.header-left{display:flex;align-items:center}.header-left{padding:.5rem 1rem}.header-center{position:absolute;left:50%;transform:translateX(-50%);font-family:var(--font-pt-mono)}.header-right{display:flex;align-items:center;padding:.5rem 1rem 0}.header-logo-text{font-family:var(--font-pt-mono)}.footer-container{display:flex;justify-content:center;align-items:center;width:100%;height:100%;padding:.75rem;border-top:1px solid #374151}.footer-tagline{font-family:var(--font-pt-mono);font-size:.75rem;color:#9ca3af;font-weight:400;letter-spacing:.05em;line-height:1.4}.link-buttons-container{display:flex;justify-content:center;align-items:center;gap:0;margin:1rem;max-width:400px;width:100%}.link-btn{background-color:#000000;color:#9ca3af;border:1px solid #4b5563;padding:.75rem 1.5rem;font-family:var(--font-pt-mono),monospace;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none}.link-btn:hover{background-color:#1a1a1a;color:#d1d5db;border-color:#6b7280;text-decoration:none}.link-btn-left{border-top-left-radius:12px;border-bottom-left-radius:12px;border-right:1px solid #4b5563}.link-btn-middle{border-radius:0;border-left:1px solid #4b5563;border-right:1px solid #4b5563}.link-btn-right{border-top-right-radius:12px;border-bottom-right-radius:12px;border-left:1px solid #4b5563}.link-btn:hover .link-btn-left{border-right-color:#6b7280}.link-btn:hover .link-btn-middle{border-left-color:#6b7280;border-right-color:#6b7280}.link-btn:hover .link-btn-right{border-left-color:#6b7280}.link-btn-icon{font-size:1rem;display:block;opacity:.8}.link-btn:hover .link-btn-icon{opacity:1}.link-btn-text{font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}@media (min-width:640px){.container{padding:0 1.5rem}}@media (min-width:1024px){.container{padding:0 2rem}}@media (max-width:768px){.header-container{padding:0 .5rem}.header-left{padding:.25rem .5rem}.header-right{padding:.25rem .5rem 0}.header-logo-text span{font-size:1.125rem}.footer-container{padding:.5rem}.footer-tagline{font-size:.625rem;text-align:center;line-height:1.3}}@media (max-width:480px){.header-left,.header-right{padding:.25rem}.header-logo-text{margin-left:.5rem}.header-logo-text span{font-size:1rem}.footer-tagline{font-size:.5rem;padding:0 .5rem}}@media (max-width:768px){.traits-container{padding:0 1rem}.traits-title{font-size:2.5rem}.traits-subtitle{font-size:1.125rem}.traits-grid{grid-template-columns:1fr;gap:1rem}.collection-stats{flex-direction:column;align-items:flex-start;gap:1rem}.trait-value-item{padding:.875rem 1rem}.trait-value-rarity{margin-left:.75rem}}@media (max-width:480px){.traits-nav{flex-direction:column;gap:.75rem}.collection-info,.collection-selector{padding:1.5rem}.trait-header{padding:1rem}.trait-value-item{flex-direction:column;align-items:flex-start;gap:.75rem}.trait-value-rarity{align-items:flex-start;margin-left:0}}@media (max-width:768px){.rarity-page{padding:1.5rem}.rarity-main-title{font-size:1.75rem}.rarity-tagline{font-size:1.25rem}.rarity-description{font-size:1rem}.dropzone-text{font-size:1.125rem}.file-dropzone{min-height:150px}}@media (max-width:480px){.rarity-main-title{font-size:1.5rem;letter-spacing:.05em}.rarity-tagline{font-size:1.125rem}.rarity-description{font-size:.9rem}.dropzone-text{font-size:1rem}.dropzone-content{padding:1.5rem}}@media (max-width:768px){.modal-content{max-width:95vw;margin:1rem}.modal-body,.modal-footer,.modal-header{padding:1rem}.sample-json{font-size:.7rem}.modal-footer,.selection-controls{flex-direction:column}.trait-type-list{max-height:200px}}@media (max-width:1200px){.results-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.5rem}.nft-card{padding:.5rem}.trait-type{font-size:.5rem}.trait-value{font-size:.8rem}.trait-rarity,.trait-stats{font-size:.6rem}}@media (max-width:768px){.results-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.375rem}.nft-card{padding:.375rem}.nft-header{margin-bottom:.375rem}.nft-name{font-size:.7rem}.nft-rank{font-size:.8rem}.nft-score{font-size:.7rem;padding:.1rem .3rem}.trait-type{font-size:.5rem}.trait-value{font-size:.8rem}.trait-rarity{padding:.05rem .2rem}.trait-rarity,.trait-stats{font-size:.6rem}}@media (max-width:480px){.results-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.25rem}.nft-card{padding:.25rem}.trait-type{font-size:.45rem}.trait-value{font-size:.65rem}.trait-rarity{font-size:.55rem}.trait-stats{font-size:.65rem}.nft-traits{grid-template-columns:repeat(2,1fr);gap:.2rem}}@media (max-width:360px){.results-grid{grid-template-columns:1fr;gap:.25rem}.nft-traits{grid-template-columns:1fr;gap:.2rem}}@media (max-width:640px){.link-buttons-container{flex-direction:column;gap:0}.link-btn{width:100%;border-radius:0!important;border-bottom:1px solid #374151}.link-btn:first-child{border-top-left-radius:12px!important;border-top-right-radius:12px!important}.link-btn:last-child{border-bottom-left-radius:12px!important;border-bottom-right-radius:12px!important;border-bottom:1px solid #374151}}.methodology-page{flex:1 1;overflow:auto;background:linear-gradient(135deg,rgb(0 0 0),rgb(15 23 42));min-height:100%}.methodology-container{max-width:900px;margin:0 auto;padding:2rem 1rem;min-height:calc(100vh - 9rem)}.methodology-content{background:rgba(15,23,42,.7);border-radius:16px;padding:2.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(30,41,59,.8);box-shadow:var(--shadow-xl)}.methodology-content h1{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;line-height:1.2;text-align:center;padding-bottom:1rem;border-bottom:2px solid rgb(var(--primary))}.methodology-content h1,.methodology-content h2{color:rgb(var(--foreground));letter-spacing:-.025em}.methodology-content h2{font-size:1.875rem;font-weight:600;margin-top:3rem;margin-bottom:1.25rem;line-height:1.3;position:relative}.methodology-content h2:before{content:"";position:absolute;left:-1rem;top:50%;transform:translateY(-50%);width:4px;height:24px;background:linear-gradient(135deg,rgb(var(--primary)),rgb(var(--gradient-to)));border-radius:2px}.methodology-content h3{font-size:1.5rem;font-weight:600;color:rgb(var(--foreground));margin-top:2rem;margin-bottom:1rem;line-height:1.4}.methodology-content h4{font-size:1.25rem;font-weight:500;color:rgb(var(--muted-foreground));margin-top:1.5rem;margin-bottom:.75rem;line-height:1.4}.methodology-content h5,.methodology-content h6{font-size:1.125rem;font-weight:500;color:rgb(var(--muted-foreground));margin-top:1.25rem;margin-bottom:.5rem;line-height:1.4}.methodology-content p{color:rgb(var(--muted-foreground));line-height:1.7;margin-bottom:1.25rem;font-size:1rem}.methodology-content strong{color:rgb(var(--foreground));font-weight:600}.methodology-content em{color:rgb(var(--foreground));font-style:italic}.methodology-content ol,.methodology-content ul{margin-bottom:1.25rem;padding-left:1.5rem;color:rgb(var(--muted-foreground));line-height:1.7}.methodology-content li{margin-bottom:.5rem}.methodology-content ul li{position:relative}.methodology-content ul li:before{content:"•";color:rgb(var(--primary));font-weight:700;position:absolute;left:-1rem;font-size:1.2em}.methodology-content ol li{color:rgb(var(--muted-foreground))}.methodology-content a{color:rgb(var(--primary));text-decoration:none;font-weight:500;transition:all .2s ease;border-bottom:1px solid transparent}.methodology-content a:hover{color:rgb(var(--gradient-to));border-bottom-color:rgb(var(--gradient-to))}.methodology-content pre{background:rgba(0,0,0,.6);border:1px solid rgb(var(--border));border-radius:8px;padding:1.25rem;margin:1.5rem 0;overflow-x:auto;font-family:var(--font-pt-mono),"Courier New",monospace;font-size:.875rem;line-height:1.6}.methodology-content pre code{background:none;border:none;padding:0;color:rgb(var(--foreground));font-size:inherit}.methodology-content code{background:rgba(30,41,59,.8);border:1px solid rgba(30,41,59,.6);color:rgb(var(--primary));padding:.25rem .5rem;border-radius:4px;font-family:var(--font-pt-mono),"Courier New",monospace;font-size:.875rem;font-weight:500}.methodology-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;background:rgba(15,23,42,.5);border-radius:8px;overflow:hidden;border:1px solid rgb(var(--border))}.methodology-content td,.methodology-content th{padding:.75rem 1rem;text-align:left;border-bottom:1px solid rgb(var(--border))}.methodology-content th{background:rgba(30,41,59,.8);color:rgb(var(--foreground));font-weight:600;font-size:.875rem;letter-spacing:.05em}.methodology-content td{color:rgb(var(--muted-foreground));font-size:.875rem}.methodology-content tr:last-child td{border-bottom:none}.methodology-content blockquote{border-left:4px solid rgb(var(--primary));margin:1.5rem 0;font-style:italic;color:rgb(var(--foreground));background:rgba(30,41,59,.3);padding:1rem 1.5rem;border-radius:0 8px 8px 0}.methodology-content hr{border:none;height:1px;background:linear-gradient(to right,transparent,rgb(var(--border)),transparent);margin:2rem 0}@media (max-width:768px){.methodology-container{padding:1rem}.methodology-content{padding:1.5rem;border-radius:12px}.methodology-content h1{font-size:2rem}.methodology-content h2{font-size:1.5rem;margin-top:2rem}.methodology-content h3{font-size:1.25rem}.methodology-content pre{padding:1rem;font-size:.8rem}.methodology-content table{font-size:.8rem}.methodology-content td,.methodology-content th{padding:.5rem .75rem}}@media (max-width:480px){.methodology-container{padding:.75rem}.methodology-content{padding:1rem}.methodology-content h1{font-size:1.75rem}.methodology-content h2{font-size:1.375rem}}.methodology-content::-webkit-scrollbar{width:8px}.methodology-content::-webkit-scrollbar-track{background:rgba(30,41,59,.3);border-radius:4px}.methodology-content::-webkit-scrollbar-thumb{background:rgba(99,102,241,.6);border-radius:4px}.methodology-content::-webkit-scrollbar-thumb:hover{background:rgba(99,102,241,.8)}.bottom-section{flex:1 1;justify-content:center;min-height:0}.bottom-section,.email-capture-container{display:flex;flex-direction:column;align-items:center;width:100%}.email-capture-container{max-width:400px;gap:1rem;margin-bottom:2rem}.email-capture-header{text-align:center}.email-capture-title{font-size:1rem;font-weight:600;color:#d1d5db;margin-bottom:.25rem;letter-spacing:.025em}.email-capture-subtitle{font-size:.75rem;color:#9ca3af;margin:0}.email-capture-form{width:100%}.email-capture-input-group{display:flex;border:1px solid #4b5563;border-radius:12px;overflow:hidden;background-color:#111111;transition:all .3s ease}.email-capture-input-group:focus-within{border-color:#6b7280;background-color:#1a1a1a}.email-capture-input{flex:1 1;padding:.75rem 1rem;background:transparent;border:none;color:#d1d5db;font-family:var(--font-pt-mono),monospace;font-size:.75rem;outline:none}.email-capture-input::placeholder{color:#6b7280}.email-capture-input:disabled{opacity:.6;cursor:not-allowed}.email-capture-button{padding:.75rem 1.25rem;background-color:#374151;color:white;border:none;font-family:var(--font-pt-mono),monospace;font-size:.875rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all .3s ease;min-width:100px}.email-capture-button:hover:not(:disabled){background-color:#4b5563;transform:scale(1.02)}.email-capture-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.email-capture-error{margin-top:.5rem;padding:.5rem;background-color:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.3);border-radius:8px;color:#fca5a5;font-size:.75rem;text-align:center}.email-capture-success{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;background-color:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);border-radius:12px;text-align:center}.email-capture-success-icon{font-size:1.5rem;color:#22c55e;font-weight:700}.email-capture-success-text{color:#86efac;font-size:.875rem;font-weight:500}@media (max-width:480px){.email-capture-container{margin-bottom:1rem}.email-capture-input-group{flex-direction:column}.email-capture-button{border-radius:0 0 12px 12px;border-top:1px solid #4b5563}.email-capture-input{border-radius:12px 12px 0 0}}.top-section{flex:10 1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;width:100%}