@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300&display=swap");[data-app=colors]{--primary:239 84% 67%;--primary-foreground:0 0% 100%;--primary-hover:239 84% 58%;--accent:330 81% 60%;--accent-foreground:0 0% 100%;--background:0 0% 100%;--foreground:240 10% 8%;--card:0 0% 100%;--card-foreground:240 10% 8%;--popover:0 0% 100%;--popover-foreground:240 10% 8%;--secondary:240 10% 97%;--secondary-foreground:240 10% 20%;--muted:240 10% 96%;--muted-foreground:240 5% 46%;--border:240 10% 90%;--input:240 10% 90%;--ring:239 84% 67%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--radius:0.75rem;--font-sans:"DM Sans",system-ui,sans-serif;--font-display:"Space Grotesk",system-ui,sans-serif}.dark [data-app=colors],[data-app=colors].dark{--background:240 10% 6%;--foreground:0 0% 95%;--card:240 10% 8%;--card-foreground:0 0% 95%;--popover:240 10% 8%;--popover-foreground:0 0% 95%;--secondary:240 10% 12%;--secondary-foreground:0 0% 92%;--muted:240 10% 15%;--muted-foreground:240 5% 65%;--border:240 10% 20%;--input:240 10% 20%}[data-app=colors]{font-family:var(--font-sans)}[data-app=colors] .font-display{font-family:var(--font-display)!important}[data-app=colors] .gradient-text{background:linear-gradient(135deg,hsl(239 84% 67%),hsl(330 81% 60%));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-app=colors] .section-eyebrow{font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--accent));display:block}[data-app=colors] .form-card{background:hsl(var(--card));border:1.5px solid hsl(var(--border));border-radius:calc(var(--radius) * 2);padding:clamp(1.5rem,4vw,2.5rem);position:relative;overflow:hidden;box-shadow:0 2px 12px hsl(240 10% 10%/.06),0 1px 3px hsl(240 10% 10%/.04)}[data-app=colors] .form-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,hsl(var(--primary)),hsl(var(--accent)));border-radius:calc(var(--radius) * 2) calc(var(--radius) * 2) 0 0}[data-app=colors] .generator-grid{display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,4vw,3rem);align-items:start}@media (min-width:768px){[data-app=colors] .generator-grid{grid-template-columns:340px 1fr}}[data-app=colors] .hero-gradient-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,hsl(239 84% 67%/.06) 0,transparent 50%),radial-gradient(ellipse at 80% 20%,hsl(330 81% 60%/.06) 0,transparent 40%);pointer-events:none}[data-app=colors] .color-picker-wrapper{padding:0}[data-app=colors] .color-preview-circle{width:48px;height:48px;border-radius:50%;border:3px solid hsl(var(--border));box-shadow:0 2px 8px hsl(0 0% 0%/.1);flex-shrink:0}[data-app=colors] .color-swatch-input{width:40px;height:40px;border-radius:var(--radius);border:2px solid hsl(var(--border));cursor:pointer;position:relative;overflow:hidden;flex-shrink:0;transition:border-color .15s ease}[data-app=colors] .color-swatch-input:hover{border-color:hsl(var(--primary))}[data-app=colors] .random-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius);border:1.5px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease;flex-shrink:0}[data-app=colors] .random-btn:hover{border-color:hsl(var(--primary));color:hsl(var(--primary));background:hsl(var(--primary)/.06)}[data-app=colors] .calc-input{width:100%;background:hsl(var(--background));border:1.5px solid hsl(var(--border));border-radius:var(--radius);padding:.625rem .875rem;font-family:var(--font-sans);font-size:.9375rem;color:hsl(var(--foreground));outline:none;transition:border-color .18s ease,box-shadow .18s ease}[data-app=colors] .calc-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary)/.12)}[data-app=colors] .input-wrapper{position:relative}[data-app=colors] .input-prefix{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);font-size:.875rem;font-weight:500;pointer-events:none;user-select:none}[data-app=colors] .input-has-prefix .calc-input{padding-left:1.75rem}[data-app=colors] .harmony-pills{display:flex;flex-wrap:wrap;gap:.5rem}[data-app=colors] .harmony-pill{display:inline-flex;align-items:center;padding:.4rem .75rem;border:1.5px solid hsl(var(--border));border-radius:2rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease;background:transparent;color:hsl(var(--muted-foreground));font-family:var(--font-sans)}[data-app=colors] .harmony-pill:hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}[data-app=colors] .harmony-pill.active{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}[data-app=colors] .palette-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 20px hsl(0 0% 0%/.12)}[data-app=colors] .palette-swatch{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:1rem .5rem;min-height:140px;cursor:pointer;border:none;transition:transform .15s ease;position:relative}[data-app=colors] .palette-swatch:hover{transform:scaleY(1.08);z-index:1}[data-app=colors] .swatch-hex{font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;letter-spacing:.02em}[data-app=colors] .swatch-name{font-size:.625rem;font-weight:400;margin-top:.25rem}[data-app=colors] .curated-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}[data-app=colors] .curated-card{border:1.5px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;cursor:pointer;background:hsl(var(--card));transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;text-align:left;width:100%}[data-app=colors] .curated-card:hover{border-color:hsl(var(--primary));box-shadow:0 4px 16px hsl(var(--primary)/.12);transform:translateY(-2px)}[data-app=colors] .curated-colors{display:flex;height:56px}[data-app=colors] .curated-info{padding:.75rem 1rem}[data-app=colors] .curated-name{font-size:.875rem;font-weight:600;color:hsl(var(--foreground));margin-bottom:.25rem}[data-app=colors] .curated-mood{font-size:.75rem;color:hsl(var(--muted-foreground));line-height:1.4;margin:0}[data-app=colors] .color-preview-sm{width:28px;height:28px;border-radius:6px;border:2px solid hsl(var(--border));flex-shrink:0}[data-app=colors] .swap-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1.5px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--muted-foreground));cursor:pointer;transition:border-color .15s ease,color .15s ease;flex-shrink:0;margin-bottom:.25rem}[data-app=colors] .swap-btn:hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}[data-app=colors] .contrast-preview{padding:1.5rem;border-radius:var(--radius);border:1.5px solid hsl(var(--border));margin-bottom:1rem}[data-app=colors] .contrast-ratings{display:flex;align-items:center;gap:1.5rem}[data-app=colors] .contrast-ratio{display:flex;align-items:baseline;gap:.375rem}[data-app=colors] .ratio-value{font-family:var(--font-display);font-size:2rem;font-weight:700;color:hsl(var(--foreground))}[data-app=colors] .ratio-label{font-size:.8125rem;color:hsl(var(--muted-foreground))}[data-app=colors] .rating-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}[data-app=colors] .rating-badge{display:flex;align-items:center;gap:.375rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}[data-app=colors] .rating-badge.pass{background:hsl(145 60% 92%);color:hsl(145 60% 25%)}[data-app=colors] .rating-badge.fail{background:hsl(0 70% 94%);color:hsl(0 70% 35%)}[data-app=colors] .rating-icon{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}[data-app=colors] .rating-label{font-weight:400;color:inherit;opacity:.8}[data-app=colors] .export-code-block{position:relative;background:hsl(240 10% 6%);border-radius:var(--radius);padding:1.25rem 1.5rem;overflow-x:auto}[data-app=colors] .export-code-block pre{margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:.8125rem;line-height:1.7;color:#e2e8f0}[data-app=colors] .export-copy-btn{position:absolute;top:.75rem;right:.75rem;padding:.25rem .625rem;border-radius:4px;border:1px solid hsl(240 10% 30%);background:hsl(240 10% 15%);color:#94a3b8;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}[data-app=colors] .export-copy-btn:hover{background:hsl(240 10% 20%);color:#e2e8f0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}[data-app=colors] .animate-fade-in-up{animation:fadeInUp .55s cubic-bezier(.22,1,.36,1) both}[data-app=colors] .animate-fade-in{animation:fadeIn .4s ease-out both}[data-app=colors] .animate-scale-in{animation:scaleIn .45s cubic-bezier(.22,1,.36,1) both}[data-app=colors] .delay-50{animation-delay:50ms}[data-app=colors] .delay-100{animation-delay:.1s}[data-app=colors] .delay-150{animation-delay:.15s}[data-app=colors] .delay-200{animation-delay:.2s}[data-app=colors] .delay-250{animation-delay:.25s}[data-app=colors] .delay-300{animation-delay:.3s}[data-app=colors] .delay-350{animation-delay:.35s}[data-app=colors] .delay-400{animation-delay:.4s}[data-app=colors] .delay-500{animation-delay:.5s}@media (prefers-reduced-motion:reduce){[data-app=colors] .animate-fade-in,[data-app=colors] .animate-fade-in-up,[data-app=colors] .animate-scale-in{animation:none!important;opacity:1!important;transform:none!important}}[data-app=colors] header{border-bottom:1.5px solid hsl(var(--border));background:hsl(var(--background)/.95);backdrop-filter:blur(12px)}[data-app=colors] header a.brand-link{font-family:var(--font-display);font-weight:700;font-size:1.0625rem}