@import"https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,600&family=Source+Sans+3:wght@400;600;700&family=IBM+Plex+Mono:wght@400;600&display=swap";:root{--font-sans:"Source Sans 3","Noto Sans",sans-serif;--font-serif:"Newsreader","Noto Serif",serif;--font-mono:"IBM Plex Mono","JetBrains Mono","Fira Code",monospace;--color-ink:#0f172a;--color-ink-muted:#475569;--color-ink-soft:#64748b;--color-ink-faint:#94a3b8;--color-surface:#fff;--color-surface-muted:#f8fafc;--color-surface-strong:#f1f5f9;--color-surface-ink:#0b1220;--color-border:#e2e8f0;--color-border-strong:#cbd5f5;--color-border-soft:#f1f5f9;--color-accent:#2563eb;--color-accent-strong:#1d4ed8;--color-accent-soft:#dbeafe;--color-accent-soft-2:#eff6ff;--color-success:#15803d;--color-success-soft:#dcfce7;--color-danger:#b91c1c;--color-danger-soft:#fee2e2;--shadow-sm:0 8px 20px rgba(15,23,42,.08);--shadow-lg:0 18px 45px rgba(15,23,42,.14);--shadow-xl:0 26px 60px rgba(15,23,42,.18)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;padding:0}body{background:radial-gradient(1200px 600px at 15% -10%,rgba(219,234,254,.65),transparent 60%),radial-gradient(900px 500px at 90% 0,hsla(48,96%,89%,.55),transparent 55%),linear-gradient(180deg,#f8fafc,#eef2ff);color:var(--color-ink);font-family:var(--font-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}#app{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-serif);margin:0}p{margin:0}a{color:inherit}a,a:hover{text-decoration:none}button{background:none;border:none;color:inherit;cursor:pointer;font:inherit;padding:0}button:disabled{cursor:not-allowed}main>*{animation:rise-in .42s ease-out both}@media(prefers-reduced-motion:reduce){*{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.min-h-screen{min-height:100vh}.w-full{width:100%}.h-full{height:100%}.h-2{height:.5rem}.w-2{width:.5rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-h-80{max-height:20rem}.mx-auto{margin-left:auto;margin-right:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-12{padding-bottom:3rem;padding-top:3rem}.pl-5{padding-left:1.25rem}.pr-1{padding-right:.25rem}.pt-1{padding-top:.25rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){margin-top:.25rem}.space-y-2>:not([hidden])~:not([hidden]){margin-top:.5rem}.space-y-3>:not([hidden])~:not([hidden]){margin-top:.75rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.5rem}.space-y-8>:not([hidden])~:not([hidden]){margin-top:2rem}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.self-start{align-self:flex-start}.text-left{text-align:left}.text-center{text-align:center}.text-xs{font-size:.75rem;line-height:1.2}.text-sm{font-size:.875rem;line-height:1.5}.text-base{font-size:1rem;line-height:1.6}.text-lg{font-size:1.125rem;line-height:1.6}.text-xl{font-size:1.25rem;line-height:1.5}.text-2xl{font-size:1.5rem;line-height:1.4}.text-3xl{font-size:1.875rem;line-height:1.3}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-mono{font-family:var(--font-mono)}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.05em}.text-white{color:#fff}.text-gray-900,.text-slate-900{color:var(--color-ink)}.text-gray-700,.text-slate-700{color:var(--color-ink-muted)}.text-gray-600,.text-slate-600{color:var(--color-ink-soft)}.text-gray-500,.text-slate-500{color:var(--color-ink-faint)}.text-gray-400,.text-slate-400{color:#94a3b8}.text-gray-800{color:#1f2937}.text-blue-600{color:var(--color-accent)}.text-green-700{color:var(--color-success)}.text-red-700{color:var(--color-danger)}.bg-white{background-color:var(--color-surface)}.bg-white\/90{background-color:#ffffffe6}.bg-gray-50,.bg-slate-50{background-color:var(--color-surface-muted)}.bg-slate-100{background-color:var(--color-surface-strong)}.bg-gray-200{background-color:#e5e7eb}.bg-blue-500{background-color:var(--color-accent)}.bg-blue-600{background-color:var(--color-accent-strong)}.bg-blue-50{background-color:var(--color-accent-soft-2)}.bg-green-100{background-color:var(--color-success-soft)}.bg-red-100{background-color:var(--color-danger-soft)}.bg-slate-900{background-color:var(--color-surface-ink)}.bg-slate-900\/40{background-color:#0f172a66}.border{border-color:var(--color-border);border-style:solid;border-width:1px}.border-2{border-color:var(--color-border);border-style:solid;border-width:2px}.border-b{border-bottom:1px solid var(--color-border)}.border-gray-200,.border-slate-200{border-color:var(--color-border)}.border-gray-300,.border-slate-300{border-color:#cbd5e1}.border-gray-100{border-color:var(--color-border-soft)}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.list-disc{list-style-type:disc}.cursor-pointer{cursor:pointer}.overflow-y-auto{overflow-y:auto}.whitespace-pre-wrap{white-space:pre-wrap}.transition{transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:ease}.transition-all{transition-duration:.2s;transition-property:all;transition-timing-function:ease}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.hover\:-translate-y-0\.5:hover{transform:translateY(-.125rem)}.hover\:bg-blue-50:hover{background-color:var(--color-accent-soft-2)}.hover\:bg-blue-500:hover{background-color:var(--color-accent)}.hover\:bg-slate-800:hover{background-color:#1e293b}.hover\:border-blue-500:hover{border-color:var(--color-accent)}.hover\:border-slate-400:hover{border-color:#94a3b8}.hover\:text-blue-500:hover{color:var(--color-accent)}.hover\:text-gray-600:hover{color:var(--color-ink-soft)}.hover\:text-slate-900:hover{color:var(--color-ink)}.hover\:underline:hover{text-decoration:underline}.underline-offset-2{text-underline-offset:2px}.focus\:outline-none:focus{outline:none}.focus-visible\:outline-none:focus-visible{outline:none}.focus-visible\:ring-2:focus-visible{--ring-size:2px;box-shadow:0 0 0 var(--ring-offset,0) var(--ring-offset-color,#fff),0 0 0 calc(var(--ring-size, 0) + var(--ring-offset, 0)) var(--ring-color,var(--color-accent))}.focus-visible\:ring-blue-500:focus-visible{--ring-color:var(--color-accent)}.focus-visible\:ring-offset-2:focus-visible{--ring-offset:2px;--ring-offset-color:#fff}.group:hover .group-hover\:text-blue-700{color:#1d4ed8}.bg-slate-900\/40,.bg-white\/90{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.backdrop-blur{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.absolute{position:absolute}.fixed{position:fixed}.inset-0{inset:0}.left-0{left:0}.right-0{right:0}.right-4{right:1rem}.bottom-4{bottom:1rem}.top-0{top:0}.z-50{z-index:50}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}@media(min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}}@media(min-width:768px){.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}}
