@import "https://fonts.googleapis.com/css2?family=Caveat:wght@500;600;700&display=swap";@font-face{font-family:Nunito;src:url(/fonts/Nunito-VariableFont_wght.ttf)format("truetype-variations");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-Italic-VariableFont_wght.ttf)format("truetype-variations");font-weight:200 900;font-style:italic;font-display:swap}@font-face{font-family:Nunito Sans;src:url(/fonts/NunitoSans_10pt-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Nunito Sans;src:url(/fonts/NunitoSans-Italic-VariableFont.ttf)format("truetype-variations");font-weight:200 900;font-style:italic;font-display:swap}@font-face{font-family:Sour Gummy;src:url(/fonts/SourGummy-Italic-VariableFont_wdth_wght.ttf)format("truetype-variations");font-weight:100 900;font-stretch:75% 125%;font-style:italic;font-display:swap}:root{--background:oklch(98.5% 0 0);--foreground:oklch(12% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(12% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(12% 0 0);--primary:oklch(12% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.5% 0 0);--secondary-foreground:oklch(38% 0 0);--muted:oklch(94% 0 0);--muted-foreground:oklch(58% 0 0);--accent:oklch(96.5% 0 0);--accent-foreground:oklch(12% 0 0);--destructive:oklch(55% .15 25);--border:oklch(90% 0 0);--input:oklch(90% 0 0);--ring:oklch(50% 0 0);--sidebar:oklch(97% 0 0);--sidebar-foreground:oklch(38% 0 0);--sidebar-primary:oklch(12% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(12% 0 0/.06);--sidebar-accent-foreground:oklch(12% 0 0);--sidebar-border:oklch(88% 0 0);--sidebar-ring:oklch(50% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--accent-blue:oklch(55% .12 250);--highlight-blue-bg:oklch(86% .07 240);--radius:.625rem;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 4px);--radius-2xl:1rem;--radius-pill:9999px;--shadow-card:0 1px 3px oklch(0% 0 0/.05), 0 1px 1px oklch(0% 0 0/.03);--shadow-float:0 8px 24px -6px oklch(0% 0 0/.1), 0 2px 8px -2px oklch(0% 0 0/.04);--shadow-composer:0 1px 2px oklch(0% 0 0/.04);--shadow-composer-focus:0 0 0 1px oklch(0% 0 0/.06), 0 2px 8px -2px oklch(0% 0 0/.06);--shadow-inset:inset 0 1px 1px oklch(0% 0 0/.03);--shadow-glow:0 0 20px oklch(0% 0 0/.08);--ease-spring:cubic-bezier(.22, 1, .36, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-message:cubic-bezier(.16, 1, .3, 1);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--font-sans:"Nunito", "Nunito Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"Geist Mono", "SF Mono", "Cascadia Code", "Fira Code", "JetBrains Mono", ui-monospace, monospace;--font-display:"Nunito", ui-sans-serif, system-ui, sans-serif;--text-xs:11px;--text-sm:12px;--text-md:13px;--text-base:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--leading-tight:1.2;--leading-snug:1.4;--leading-message:1.65;--leading-body:1.6;--tracking-tight:-.025em;--tracking-label:.12em}.dark{--background:oklch(19.5% 0 0);--foreground:oklch(94% 0 0);--card:oklch(22.5% 0 0);--card-foreground:oklch(94% 0 0);--popover:oklch(22.5% 0 0);--popover-foreground:oklch(94% 0 0);--primary:oklch(94% 0 0);--primary-foreground:oklch(19.5% 0 0);--secondary:oklch(26% 0 0);--secondary-foreground:oklch(75% 0 0);--muted:oklch(16.5% 0 0);--muted-foreground:oklch(60% 0 0);--accent:oklch(26% 0 0);--accent-foreground:oklch(94% 0 0);--destructive:oklch(70% .15 25);--border:oklch(27% 0 0);--input:oklch(27% 0 0);--ring:oklch(45% 0 0);--sidebar:oklch(17.5% 0 0);--sidebar-foreground:oklch(78% 0 0);--sidebar-primary:oklch(94% 0 0);--sidebar-primary-foreground:oklch(19.5% 0 0);--sidebar-accent:oklch(94% 0 0/.06);--sidebar-accent-foreground:oklch(94% 0 0);--sidebar-border:oklch(25% 0 0);--sidebar-ring:oklch(45% 0 0);--shadow-card:inset 0 1px 0 oklch(100% 0 0/.04), 0 1px 2px oklch(0% 0 0/.2), 0 .5px 1px oklch(0% 0 0/.15);--shadow-float:0 0 0 1px oklch(100% 0 0/.06), 0 16px 48px -6px oklch(0% 0 0/.35), 0 6px 12px -2px oklch(0% 0 0/.2);--shadow-composer:0 1px 3px oklch(0% 0 0/.2), inset 0 1px 0 oklch(100% 0 0/.03);--shadow-composer-focus:0 0 0 1px oklch(100% 0 0/.1), 0 4px 16px -4px oklch(0% 0 0/.3), inset 0 1px 0 oklch(100% 0 0/.04)}*,:before,:after{box-sizing:border-box}html,body{background:var(--background);color:var(--foreground);margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);font-feature-settings:"ss01", "ss02", "cv01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}::selection{background:var(--highlight-blue-bg);color:var(--foreground)}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);letter-spacing:var(--tracking-tight);font-weight:700;line-height:var(--leading-tight);color:var(--foreground);margin:0}p{font-size:var(--text-md);line-height:var(--leading-body);color:var(--foreground);margin:0}code,kbd,pre,samp{font-family:var(--font-mono);font-size:var(--text-sm)}.ds-h1{font-size:var(--text-3xl);letter-spacing:-.015em;font-weight:700}.ds-h2{font-size:var(--text-2xl);letter-spacing:-.015em;font-weight:700}.ds-h3{font-size:var(--text-xl);letter-spacing:-.015em;font-weight:600}.ds-meta{font-size:var(--text-xs);color:var(--muted-foreground)}.ds-lede{font-size:var(--text-lg);color:var(--muted-foreground);font-weight:400;line-height:1.5}.ds-empty{font-size:var(--text-base);color:var(--muted-foreground);text-align:center;padding:var(--space-6) 0;line-height:1.5}.ds-label{text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--muted-foreground);font-size:10px;font-weight:600}.ds-wordmark{font-family:"Caveat", "Sour Gummy", var(--font-display);letter-spacing:.01em;color:var(--foreground);font-size:52px;font-style:normal;font-weight:600;line-height:1;position:relative}.ds-wordmark--sm{font-size:30px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:10;height:56px;padding:0 var(--space-6);background:var(--sidebar);border-bottom:1px solid color-mix(in oklch, var(--border), transparent 50%);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-header__nav{align-items:center;gap:var(--space-2);display:flex}.app-header__search{margin:0 var(--space-4);flex:1;justify-content:center;display:flex}.app-header__search .input{width:100%;max-width:480px}.app-main{width:100%;max-width:960px;padding:var(--space-12) var(--space-6) var(--space-8);flex:1;margin:0 auto}.app-main--narrow{max-width:720px}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack-sm{gap:var(--space-2)}.stack-lg{gap:var(--space-6)}.stack-xl{gap:var(--space-8)}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.card{background:var(--card);color:var(--card-foreground);border:1px solid color-mix(in oklch, var(--border), transparent 30%);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--space-8)}.card--tight{padding:var(--space-4);border-radius:var(--radius-lg)}.suggestion-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=720px){.suggestion-grid{grid-template-columns:1fr}}.suggestion-card{background:var(--card);border:1px solid color-mix(in oklch, var(--border), transparent 30%);border-radius:var(--radius-xl);cursor:pointer;transition:transform .2s var(--ease-spring), box-shadow .2s var(--ease-spring), border-color .2s var(--ease-spring);padding:14px 16px;display:block}.suggestion-card:hover{box-shadow:var(--shadow-card);border-color:var(--border);transform:translateY(-1px)}.suggestion-card--glow{isolation:isolate;position:relative}.suggestion-card__border{border-radius:inherit;pointer-events:none;opacity:0;-webkit-mask-composite:xor;padding:1.5px;transition:opacity .2s;position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.suggestion-card__shine{background:conic-gradient(#fff 0deg,#fff9 30deg,#fff3 90deg 270deg,#fff9 330deg,#fff 360deg);position:absolute;inset:-50%}.suggestion-card--glow:hover .suggestion-card__border{opacity:1}.suggestion-card--glow:hover .suggestion-card__shine{animation:suggestion-shine-spin var(--trace-duration,2s) linear infinite}@keyframes suggestion-shine-spin{to{transform:rotate(360deg)}}.suggestion-card--glow:hover{box-shadow:0 0 24px -4px #ffffff2e, 0 0 0 1px #ffffff14, var(--shadow-card)}:root:not(.dark) .suggestion-card__shine{background:conic-gradient(#000000d9 0deg,#00000080 30deg,#00000026 90deg 270deg,#00000080 330deg,#000000d9 360deg)}:root:not(.dark) .suggestion-card--glow:hover{box-shadow:0 0 24px -6px #0000001f, var(--shadow-card)}@media (prefers-reduced-motion:reduce){.suggestion-card__shine{animation:none}}.spooool-wave{stroke-dasharray:32 68;animation:2.4s linear infinite spooool-wave-scroll}@keyframes spooool-wave-scroll{to{stroke-dashoffset:100px}}.spooool-wave--paced{stroke-dasharray:32 68;animation:6s ease-in-out infinite spooool-wave-paced}@keyframes spooool-wave-paced{0%{stroke-dashoffset:0}20%{stroke-dashoffset:36px}40%{stroke-dashoffset:50px}60%{stroke-dashoffset:58px}80%{stroke-dashoffset:86px}to{stroke-dashoffset:100px}}@media (prefers-reduced-motion:reduce){.spooool-wave,.spooool-wave--paced{animation:none}}.splash{z-index:100;background:var(--background);cursor:pointer;justify-content:center;align-items:center;animation:.4s forwards splash-in;display:flex;position:fixed;inset:0}.splash--leaving{pointer-events:none;animation:.6s forwards splash-out}.splash__mark{font-family:"Caveat", var(--font-display);color:var(--foreground);-webkit-user-select:none;user-select:none;align-items:baseline;gap:0;font-size:clamp(64px,14vw,168px);font-style:normal;font-weight:600;line-height:1;animation:.8s cubic-bezier(.34,1.56,.64,1) both splash-mark-in;display:inline-flex}.splash__hint{bottom:var(--space-8);color:var(--muted-foreground);font-size:var(--text-sm);letter-spacing:var(--tracking-label);text-transform:uppercase;opacity:0;animation:.6s 1.6s forwards splash-hint-in;position:absolute;left:50%;transform:translate(-50%)}@keyframes splash-in{0%{opacity:0}to{opacity:1}}@keyframes splash-out{0%{opacity:1}to{opacity:0}}@keyframes splash-mark-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes splash-hint-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:.7;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.splash,.splash--leaving,.splash__mark,.splash__hint{opacity:1;animation:none}}.btn{appearance:none;justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);background:var(--primary);height:36px;color:var(--primary-foreground);font-family:var(--font-sans);font-size:var(--text-base);letter-spacing:0;cursor:pointer;transition:background .15s var(--ease-smooth), border-color .15s var(--ease-smooth), transform 80ms var(--ease-smooth);border:1px solid #0000;padding:0 14px;font-weight:600;display:inline-flex}.btn:hover{background:color-mix(in oklch, var(--primary), transparent 20%)}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:0 0 0 3px color-mix(in oklch, var(--ring), transparent 50%);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--secondary{background:var(--secondary);color:var(--secondary-foreground);border-color:color-mix(in oklch, var(--border), transparent 30%)}.btn--secondary:hover{background:var(--muted);color:var(--foreground)}.btn--ghost{color:var(--foreground);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--muted)}.btn--sm{height:28px;font-size:var(--text-sm);border-radius:var(--radius-md);padding:0 10px}.field{flex-direction:column;gap:6px;display:flex}.field__label{font-size:var(--text-sm);color:var(--muted-foreground);font-weight:600}.input{appearance:none;background:var(--card);width:100%;height:40px;color:var(--foreground);border:1px solid var(--input);border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--text-base);transition:border-color .15s var(--ease-smooth), box-shadow .15s var(--ease-smooth);outline:none;padding:0 14px}.input--sm{height:32px;font-size:var(--text-sm);padding:0 12px}.input:hover{border-color:color-mix(in oklch, var(--ring), transparent 60%)}.input:focus,.input:focus-visible{border-color:color-mix(in oklch, var(--ring), transparent 40%);box-shadow:0 0 0 3px color-mix(in oklch, var(--ring), transparent 70%)}textarea.input{border-radius:var(--radius-xl);height:auto;min-height:88px;line-height:var(--leading-body);resize:vertical;padding:12px 14px}input[type=file].input{padding:8px 10px;line-height:24px}.badge{border-radius:var(--radius-pill);background:var(--muted);height:22px;color:var(--muted-foreground);font-size:var(--text-xs);border:1px solid color-mix(in oklch, var(--border), transparent 50%);align-items:center;padding:0 10px;font-weight:600;display:inline-flex}.meter{background:var(--muted);border-radius:var(--radius-pill);width:100%;height:6px;overflow:hidden}.meter__bar{background:var(--primary);border-radius:var(--radius-pill);height:100%;transition:width .2s var(--ease-smooth)}.status-error{color:var(--destructive);font-size:var(--text-sm)}.status-ok{color:var(--foreground);font-size:var(--text-sm)}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.fade-up{animation:fade-up .25s var(--ease-spring) both}.fade-in{animation:fade-in .2s var(--ease-smooth) both}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.spinner{--spinner-size:24px;align-items:center;gap:var(--space-2);display:inline-flex}.spinner--inline{vertical-align:middle}.spinner__ring{width:var(--spinner-size);height:var(--spinner-size);border:2px solid color-mix(in oklch, var(--foreground) 18%, transparent);border-top-color:var(--primary);border-radius:50%;animation:.7s linear infinite spinner-rotate;display:inline-block}.spinner__label{font-size:var(--text-sm);color:var(--muted-foreground)}.progress-track{background:color-mix(in oklch, var(--foreground) 8%, transparent);border-radius:999px;width:100%;height:6px;overflow:hidden}.progress-track__fill{background:var(--primary);border-radius:999px;height:100%;transition:width .2s ease-out}.progress-track__fill--indeterminate{width:30%;animation:1.4s ease-in-out infinite progress-indeterminate}@keyframes progress-indeterminate{0%{transform:translate(-100%)}50%{transform:translate(220%)}to{transform:translate(220%)}}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid}.alert--error{background:color-mix(in oklch, #b91c1c 8%, var(--card));color:#7f1d1d;border-color:oklch(50.542% .190493 27.5181/.35)}.alert--info{background:color-mix(in oklch, var(--primary) 8%, var(--card));border-color:color-mix(in oklch, var(--primary) 30%, transparent)}.alert ul{margin:var(--space-1) 0 0;padding-left:var(--space-4)}.info-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.info-table th,.info-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid color-mix(in oklch, var(--foreground) 6%, transparent)}.info-table th{color:var(--muted-foreground);font-weight:500}.info-table td.num{text-align:right;font-variant-numeric:tabular-nums}.debug-log{background:color-mix(in oklch, var(--foreground) 4%, var(--card));padding:var(--space-3);border-radius:var(--radius-md);font-family:var(--font-mono,ui-monospace, monospace);font-size:var(--text-xs);white-space:pre-wrap;max-height:320px;overflow:auto}
