:root{--bg: #12121a;--surface: #1b1b26;--surface-2: #252533;--border: #33334a;--text: #f2f2f7;--muted: #a3a3b8;--accent: #ff7a2f;--accent-2: #ff4fa3;--on-accent: #1a0e05;--ok: #4ade80;--warn: #fbbf24;--danger: #f87171;--radius: 14px;--font-display: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(1200px 500px at 50% -200px,color-mix(in srgb,var(--accent-2) 14%,transparent),transparent),var(--bg)}#app{min-height:100vh;display:flex;flex-direction:column}h1,h2{line-height:1.2}h1,.modal-body h2{font-family:var(--font-display);font-weight:600;letter-spacing:.01em}h1{font-size:2.25rem}a{color:var(--accent)}code{background:var(--surface-2);padding:.1em .35em;border-radius:6px;font-size:.9em}.container{width:100%;max-width:960px;margin:0 auto;padding:0 1rem}main.container{flex:1;padding-bottom:3rem}.narrow{max-width:460px;margin-left:auto;margin-right:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;transition:border-color .2s,box-shadow .2s}@media(hover:hover){li.card:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:0 0 24px -12px color-mix(in srgb,var(--accent) 60%,transparent)}}.fw-color{flex:none;width:.7rem;height:.7rem;border-radius:50%;background:var(--fw-color);box-shadow:0 0 0 1.5px color-mix(in srgb,#fff 35%,transparent),0 0 10px var(--fw-color)}.muted{color:var(--muted)}.center{text-align:center}.small{font-size:.85rem}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.stack{display:grid;gap:.9rem}.stack label{display:grid;gap:.35rem;font-weight:500}input:not([type=checkbox]),textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;width:100%}input:not([type=checkbox]):focus,textarea:focus{outline:none;border-color:var(--accent)}input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.check{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.btn{font:inherit;font-weight:600;display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.1rem;border-radius:999px;border:1px solid transparent;cursor:pointer;text-decoration:none;line-height:1.2;transition:background .15s,border-color .15s,opacity .15s}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--on-accent)}.btn.primary:hover:not(:disabled){opacity:.92}.btn.ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn.ghost:hover:not(:disabled){background:var(--surface-2)}.btn.danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.btn.danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 12%,transparent)}.btn.small{padding:.4rem .8rem;font-size:.875rem}.btn.block{width:100%;justify-content:center}.link{font:inherit;background:none;border:none;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.fw-name{font-size:1.1rem;margin:0 0 .35rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.meta{display:flex;flex-wrap:wrap;gap:.35rem 1.5rem;margin:0}.meta div{display:flex;gap:.4rem}.meta dt{color:var(--muted)}.meta dt:after{content:":"}.meta dd{margin:0;font-weight:500}.badge{position:relative;display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;background:var(--surface-2);color:var(--muted);text-decoration:none;white-space:nowrap}.badge.ok{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok);font-size:.875rem;padding:.4rem .8rem}.badge.warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.banner{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-radius:var(--radius);margin:1rem 0;border:1px solid var(--border)}.banner span{flex:1}.banner.ok{border-color:color-mix(in srgb,var(--ok) 45%,transparent);background:color-mix(in srgb,var(--ok) 8%,transparent)}.banner.error{border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 8%,transparent)}.error-text{color:var(--danger);margin:0}.ok-text{color:var(--ok);margin:0}.footer{font-size:.8rem;text-align:center;padding-top:1rem;padding-bottom:1.5rem}body:has(dialog[open]){overflow:hidden}.modal{width:min(32rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text)}.modal[open]{animation:modal-pop-in .15s ease-out}.modal::backdrop{background:#0009}.modal-body{padding:1.25rem}.modal-body h2{margin:0;font-size:1.2rem}@keyframes modal-pop-in{0%{opacity:0;transform:scale(.97)}}@keyframes modal-slide-up{0%{transform:translateY(100%)}}@media(max-width:560px){.modal{width:100%;max-width:100%;margin:auto 0 0;max-height:92dvh;border-radius:var(--radius) var(--radius) 0 0;border-bottom:none}.modal[open]{animation:modal-slide-up .2s ease-out}.modal-body{padding-bottom:max(1.25rem,env(safe-area-inset-bottom))}}.burst:after{content:"";position:absolute;inset:50% auto auto 50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;pointer-events:none;animation:burst .7s ease-out forwards}@keyframes burst{0%{opacity:1;box-shadow:0 0 0 var(--accent),0 0 0 var(--accent-2),0 0 #ffd166,0 0 #7cc6ff,0 0 0 var(--accent),0 0 0 var(--accent-2),0 0 #ffd166,0 0 #7cc6ff}to{opacity:0;box-shadow:0 -34px 0 var(--accent),24px -24px #ffd166,34px 0 0 var(--accent-2),24px 24px #7cc6ff,0 34px 0 var(--accent),-24px 24px #ffd166,-34px 0 0 var(--accent-2),-24px -24px #7cc6ff}}@media(prefers-reduced-motion:reduce){dialog[open]{animation:none!important}.burst:after{display:none}}.missing.svelte-1qx2bvd{margin:.75rem 0 1rem;padding-left:1.25rem;display:grid;gap:.25rem}
