:root{--ground: #f1f2f4;--surface: #ffffff;--surface-2: #e9ebef;--ink: #1b2230;--muted: #5b6577;--line: #d6dae1;--accent: #2456d6;--accent-hover: #1a44b0;--accent-soft: #e3eafb;--accent-glow: rgba(36, 86, 214, .28);--on-accent: #ffffff;--grad: linear-gradient(135deg, #2456d6 0%, #5b3fd6 60%, #7c3aed 100%);--amber: #9a4b0b;--amber-soft: #fbe9d3;--teal: #0e6b64;--teal-soft: #d3eeea;--violet: #5b21b6;--violet-soft: #e9e1fa;--ok: #1f7a3a;--ok-soft: #dcf3e3;--warn: #8a5a00;--warn-soft: #fbefcf;--code-bg: #1b2230;--code-ink: #e8ebf0;--code-ph: #f2b26b;--blob-1: rgba(36, 86, 214, .22);--blob-2: rgba(124, 58, 237, .18);--blob-3: rgba(14, 107, 100, .16);--shadow: 0 1px 2px rgba(27, 34, 48, .06), 0 6px 20px rgba(27, 34, 48, .06);--shadow-lg: 0 2px 4px rgba(27, 34, 48, .06), 0 18px 48px rgba(27, 34, 48, .14);--font-display: "Bricolage Grotesque", "IBM Plex Sans", "Segoe UI", sans-serif;--font-body: "IBM Plex Sans", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--ease: cubic-bezier(.2, .7, .2, 1);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: #12161d;--surface: #1a2029;--surface-2: #222935;--ink: #e8ebf0;--muted: #98a2b3;--line: #2c3441;--accent: #7a9bff;--accent-hover: #9bb4ff;--accent-soft: #1f2b4a;--accent-glow: rgba(122, 155, 255, .3);--on-accent: #0e1424;--grad: linear-gradient(135deg, #7a9bff 0%, #a08cff 60%, #c4b0f5 100%);--amber: #f2b26b;--amber-soft: #3a2a16;--teal: #6ed3c7;--teal-soft: #14302d;--violet: #c4b0f5;--violet-soft: #2b2140;--ok: #7bd39a;--ok-soft: #173424;--warn: #f0c46a;--warn-soft: #3a2f12;--code-bg: #0c1016;--code-ink: #dde3ec;--code-ph: #f2b26b;--blob-1: rgba(122, 155, 255, .16);--blob-2: rgba(196, 176, 245, .12);--blob-3: rgba(110, 211, 199, .1);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .3);--shadow-lg: 0 2px 4px rgba(0, 0, 0, .4), 0 18px 48px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--ground: #12161d;--surface: #1a2029;--surface-2: #222935;--ink: #e8ebf0;--muted: #98a2b3;--line: #2c3441;--accent: #7a9bff;--accent-hover: #9bb4ff;--accent-soft: #1f2b4a;--accent-glow: rgba(122, 155, 255, .3);--on-accent: #0e1424;--grad: linear-gradient(135deg, #7a9bff 0%, #a08cff 60%, #c4b0f5 100%);--amber: #f2b26b;--amber-soft: #3a2a16;--teal: #6ed3c7;--teal-soft: #14302d;--violet: #c4b0f5;--violet-soft: #2b2140;--ok: #7bd39a;--ok-soft: #173424;--warn: #f0c46a;--warn-soft: #3a2f12;--code-bg: #0c1016;--code-ink: #dde3ec;--code-ph: #f2b26b;--blob-1: rgba(122, 155, 255, .16);--blob-2: rgba(196, 176, 245, .12);--blob-3: rgba(110, 211, 199, .1);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .3);--shadow-lg: 0 2px 4px rgba(0, 0, 0, .4), 0 18px 48px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}img{max-width:100%;height:auto}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-hover);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}::selection{background:var(--accent-soft);color:var(--ink)}.wrap{max-width:1120px;margin:0 auto;padding-inline:20px}.narrow{max-width:760px}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.015em;line-height:1.15;text-wrap:balance;margin:0 0 12px}h1{font-size:clamp(32px,5vw,52px);line-height:1.05;letter-spacing:-.025em}h2{font-size:clamp(24px,3vw,30px)}h3{font-size:19px;margin-top:24px}p{margin:0 0 14px}.prose p,.prose li{max-width:70ch}.prose ul,.prose ol{padding-left:22px;margin:0 0 16px}.prose li{margin-bottom:6px}.prose h2{margin-top:32px}.prose table{border-collapse:collapse;width:100%;font-size:14px;margin:0 0 20px}.prose th,.prose td{text-align:left;vertical-align:top;padding:8px 10px;border-bottom:1px solid var(--line)}.prose th{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.prose blockquote{margin:0 0 16px;padding:10px 16px;border-left:3px solid var(--accent);background:var(--surface);border-radius:6px}.muted{color:var(--muted)}.small{font-size:14px}.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.lede{font-size:18px;color:var(--muted);max-width:60ch}.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}code{font-family:var(--font-mono);font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:4px}pre{font-family:var(--font-mono);font-size:13px;line-height:1.55;background:var(--code-bg);color:var(--code-ink);padding:16px 18px;border-radius:12px;overflow-x:auto;margin:0 0 18px;box-shadow:var(--shadow)}pre code{background:none;padding:0;color:inherit;font-size:inherit}pre mark{background:transparent;color:var(--code-ph);font-weight:500;border-radius:3px;transition:background .2s}pre mark.hot{background:#f2b26b38;outline:1px solid rgba(242,178,107,.5)}.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.site-header .bar{display:flex;align-items:center;gap:20px;padding-block:12px;flex-wrap:wrap}.brand{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--ink);display:inline-flex;align-items:center;gap:8px}.brand:hover{text-decoration:none;color:var(--ink)}.brand .mark{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:6px;transition:transform .25s var(--ease),background .2s}.brand:hover .mark{transform:rotate(-6deg) scale(1.06)}.nav{display:flex;gap:4px 18px;flex-wrap:wrap;margin-left:auto;font-size:14.5px;align-items:center}.nav a{color:var(--muted);padding:4px 0;position:relative}.nav a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}.nav a:hover,.nav a[aria-current=page]{color:var(--ink);text-decoration:none}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}.theme-toggle{width:34px;height:34px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .3s var(--ease),color .2s,border-color .2s}.theme-toggle:hover{color:var(--ink);border-color:var(--muted);transform:rotate(20deg)}.theme-toggle svg{width:16px;height:16px}.theme-toggle .moon{display:none}:root[data-theme=dark] .theme-toggle .sun{display:none}:root[data-theme=dark] .theme-toggle .moon{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .sun{display:none}:root:not([data-theme=light]) .theme-toggle .moon{display:block}}.logo-dark{display:none}:root[data-theme=dark] .logo-light{display:none}:root[data-theme=dark] .logo-dark{display:inline-block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .logo-light{display:none}:root:not([data-theme=light]) .logo-dark{display:inline-block}}.credit{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-left:4px;padding-left:12px;border-left:1px solid var(--line)}.credit:hover{text-decoration:none;color:var(--ink)}.credit img{height:16px;width:auto;display:inline-block;vertical-align:middle;transition:transform .25s var(--ease)}.credit:hover img{transform:translateY(-1px)}@media(max-width:900px){.credit{display:none}}.brand-logo{height:34px;width:auto;display:inline-block}.maker{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:center;padding:28px;overflow:hidden;position:relative}.maker:before{content:"";position:absolute;inset:0;background:radial-gradient(520px circle at 100% 0%,var(--accent-soft),transparent 60%);pointer-events:none}.maker>*{position:relative}.maker .maker-logo{height:40px;width:auto;margin:6px 0 12px;display:inline-block}.maker-art img{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 30px rgba(27,34,48,.18));animation:float 8s ease-in-out infinite}.apps-row{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 16px}.apps-row a{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);padding:6px 10px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);transition:transform .25s var(--ease),border-color .2s,box-shadow .25s}.apps-row a:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow)}.apps-row img{width:26px;height:26px;border-radius:7px}.submit-band{display:grid;grid-template-columns:160px 1fr auto;gap:24px;align-items:center;padding:22px 26px;background:var(--code-bg);color:var(--code-ink);border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden;position:relative}.submit-band:before{content:"";position:absolute;inset:-40% auto auto -10%;width:60%;height:180%;background:radial-gradient(closest-side,var(--accent-glow),transparent);pointer-events:none}.submit-band>*{position:relative}.submit-band img{width:140px;height:auto;display:block;animation:float 6s ease-in-out infinite;filter:drop-shadow(0 16px 24px rgba(0,0,0,.35))}.submit-band h2{color:var(--code-ink);font-size:24px;margin:0 0 6px}.submit-band p{margin:0;color:#98a2b3;max-width:60ch}.step .art{margin:-18px -18px 14px;border-bottom:1px solid var(--line);border-radius:14px 14px 0 0;overflow:hidden;background:var(--ground)}@media(max-width:860px){.maker{grid-template-columns:1fr}.submit-band{grid-template-columns:1fr;text-align:center;justify-items:center}}.site-footer{border-top:1px solid var(--line);margin-top:72px;padding-block:0 40px;font-size:13.5px;color:var(--muted);background:var(--surface)}.brand-band{display:block;position:relative;overflow:hidden;background:#090c12;height:clamp(150px,21vw,320px);border-bottom:1px solid #1c2330;isolation:isolate}.brand-band .glow{position:absolute;inset:-10%;background:radial-gradient(55% 75% at 50% 110%,rgba(30,140,255,.34),transparent 70%),radial-gradient(35% 60% at 12% 100%,rgba(124,58,237,.2),transparent 70%),radial-gradient(30% 50% at 88% 90%,rgba(110,211,199,.12),transparent 70%);animation:glow-drift 16s ease-in-out infinite alternate}.brand-band .grain{position:absolute;inset:0;background-image:linear-gradient(#1c2330 1px,transparent 1px),linear-gradient(90deg,#1c2330 1px,transparent 1px);background-size:48px 48px;opacity:.22;mask-image:radial-gradient(ellipse at 50% 100%,black 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 100%,black 30%,transparent 75%)}.brand-band .lockup{position:absolute;left:50%;bottom:0;width:min(96%,1400px);height:auto;transform:translate(-50%,22%);opacity:.16;transition:transform 1.2s var(--ease),opacity 1.2s var(--ease),filter .6s;filter:drop-shadow(0 0 40px rgba(30,140,255,.25))}.brand-band:hover .lockup{opacity:.26}.js .brand-band:not(.in) .lockup{transform:translate(-50%,42%);opacity:0}@keyframes glow-drift{0%{transform:translate(-4%) scale(1)}to{transform:translate(4%) scale(1.06)}}.built-by{padding-block:36px 28px;border-bottom:1px solid var(--line)}.built-by .head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.built-by h2{font-size:22px;margin:0;color:var(--ink)}.built-by .head p{margin:4px 0 0;max-width:60ch}.apps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.app{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--ground);color:var(--ink);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .2s;position:relative;overflow:hidden}.app:before{content:"";position:absolute;inset:0;background:var(--grad);opacity:0;transition:opacity .3s}.app:hover{text-decoration:none;transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--accent);color:var(--ink)}.app:hover:before{opacity:.05}.app img{width:52px;height:52px;border-radius:12px;box-shadow:var(--shadow);transition:transform .35s var(--ease);position:relative}.app:hover img{transform:scale(1.08) rotate(-4deg)}.app b{display:block;font-size:14px;line-height:1.25;margin-bottom:2px;position:relative}.app span{display:block;font-size:12.5px;color:var(--muted);line-height:1.4;position:relative}.app .stars{color:var(--amber);font-size:12px;margin-top:3px}.sites{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}.sites a{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:500}.sites a:hover{color:var(--accent);text-decoration:none}.sites a:before{content:"";width:6px;height:6px;border-radius:999px;background:var(--accent);opacity:.6;transition:transform .25s var(--ease)}.sites a:hover:before{transform:scale(1.6)}.site-footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin:28px 0 20px}.site-footer h4{font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-family:var(--font-body)}.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--ink)}.disclaimer{max-width:80ch}.chip{font-family:var(--font-mono);font-size:13px;font-weight:500;padding:3px 9px;border-radius:6px;background:var(--accent-soft);color:var(--accent);white-space:nowrap;display:inline-block;transition:transform .2s var(--ease),box-shadow .2s}.tag{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.02em;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.tag-executes{background:var(--amber-soft);color:var(--amber)}.tag-drafts{background:var(--violet-soft);color:var(--violet)}.tag-analyzes{background:var(--teal-soft);color:var(--teal)}.tag-verified{background:var(--ok-soft);color:var(--ok)}.tag-unverified{background:var(--warn-soft);color:var(--warn)}.tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:14px;font-weight:600;padding:9px 15px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;line-height:1.2;position:relative;overflow:hidden;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s,background .2s,color .2s}.btn:hover{text-decoration:none;border-color:var(--muted);color:var(--ink);transform:translateY(-1px);box-shadow:var(--shadow)}.btn:active{transform:translateY(0) scale(.98)}.btn-primary{background:var(--grad);color:var(--on-accent);border-color:transparent;box-shadow:0 6px 18px var(--accent-glow)}.btn-primary:after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);transform:skew(-20deg);transition:left .6s var(--ease)}.btn-primary:hover{color:var(--on-accent);transform:translateY(-2px);box-shadow:0 10px 26px var(--accent-glow)}.btn-primary:hover:after{left:130%}.btn-sm{font-size:13px;padding:6px 10px}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.btn-pulse:before{content:"";position:absolute;inset:-3px;border-radius:12px;border:2px solid var(--accent);opacity:0;animation:pulse-ring 2.4s var(--ease) infinite;pointer-events:none}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:10px;align-content:start;position:relative;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .2s}.card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%),var(--accent-glow),transparent 60%);transition:opacity .3s}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--accent)}.card:hover:after{opacity:.35}.card:hover .chip{transform:translate(2px)}.card h3{font-size:17px;margin:0;line-height:1.25}.card h3 a{color:var(--ink)}.card h3 a:after{content:"";position:absolute;inset:0}.card p{margin:0;font-size:14px;color:var(--muted)}.card .foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-top:auto;position:relative;z-index:1}.card-cat{display:grid;gap:6px;align-content:start;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--ink);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .2s}.card-cat.with-ico{grid-template-columns:40px 1fr;gap:6px 12px;align-items:start}.card-cat:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-4px);box-shadow:var(--shadow-lg);color:var(--ink)}.card-cat .ico{grid-row:span 3;width:40px;height:40px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;transition:transform .35s var(--ease),background .2s,color .2s}.card-cat:hover .ico{transform:rotate(-8deg) scale(1.08);background:var(--accent);color:var(--on-accent)}.card-cat b{font-family:var(--font-display);font-size:17px}.card-cat span{font-size:13.5px;color:var(--muted)}.card-cat .count{font-family:var(--font-mono);font-size:12px;color:var(--accent)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px}.callout{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:12px 16px;margin:0 0 18px}.callout p:last-child{margin:0}.notice{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:10px 14px;font-size:14px;margin:0 0 16px}.section{padding-block:40px 8px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.section-head h2{margin:0}.section-head a{font-size:14px}label{font-size:13px;font-weight:600;color:var(--muted);display:block;margin-bottom:4px}input[type=text],input[type=email],input[type=url],select,textarea{font:inherit;font-size:14px;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}textarea{min-height:120px;font-family:var(--font-mono);font-size:13px}.field{display:grid;gap:4px}.fields{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin:0 0 20px}.tablewrap table{border-collapse:collapse;width:100%;font-size:14px}.tablewrap th,.tablewrap td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--line)}.tablewrap th{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--surface-2)}.tablewrap tr:last-child td{border-bottom:0}.tablewrap tbody tr{transition:background .15s}.tablewrap tbody tr:hover{background:var(--accent-soft)}.num{font-variant-numeric:tabular-nums}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,12px);background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:10px;font-size:14px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease);z-index:60}.toast.show{opacity:1;transform:translate(-50%)}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes drift-1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(40px,-30px) scale(1.1)}}@keyframes drift-2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50px,20px) scale(.95)}}@keyframes drift-3{0%,to{transform:translate(0)}50%{transform:translate(20px,40px)}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes pulse-ring{0%{opacity:.7;transform:scale(.96)}70%{opacity:0;transform:scale(1.12)}to{opacity:0}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pop{0%{transform:scale(.9)}60%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes spin-slow{to{transform:rotate(360deg)}}.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:var(--d, 0ms)}.js .grid>.reveal:nth-child(2){--d: 60ms}.js .grid>.reveal:nth-child(3){--d: .12s}.js .grid>.reveal:nth-child(4){--d: .18s}.js .grid>.reveal:nth-child(5){--d: .24s}.js .grid>.reveal:nth-child(6){--d: .3s}.js .grid>.reveal:nth-child(7){--d: .36s}.js .grid>.reveal:nth-child(8){--d: .42s}.js .grid>.reveal:nth-child(n+9){--d: .46s}.hero{position:relative;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--line);isolation:isolate}.hero-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}.hero-bg i{position:absolute;border-radius:50%;filter:blur(60px);opacity:.9}.hero-bg .b1{width:480px;height:480px;left:-120px;top:-160px;background:var(--blob-1);animation:drift-1 14s ease-in-out infinite}.hero-bg .b2{width:420px;height:420px;right:-100px;top:-80px;background:var(--blob-2);animation:drift-2 17s ease-in-out infinite}.hero-bg .b3{width:360px;height:360px;left:40%;bottom:-200px;background:var(--blob-3);animation:drift-3 19s ease-in-out infinite}.hero-bg .gridlines{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px;opacity:.35;mask-image:radial-gradient(ellipse at 50% 30%,black 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 30%,black 20%,transparent 75%)}.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:44px;align-items:center;padding-block:60px 44px}.hero-title .w{display:inline-block;margin-right:.26em}.js .hero-title .w{opacity:0;animation:fade-up .7s var(--ease) forwards;animation-delay:calc(var(--i) * 70ms + 80ms)}.js .hero .lede,.js .hero .btn-row,.js .hero .hero-meta{opacity:0;animation:fade-up .7s var(--ease) forwards}.js .hero .lede{animation-delay:.42s}.js .hero .btn-row{animation-delay:.54s}.js .hero .hero-meta{animation-delay:.66s}.hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:18px;font-size:13.5px;color:var(--muted)}.hero-meta b{font-family:var(--font-mono);color:var(--ink);font-weight:500}.demo{background:var(--ground);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden;font-size:13.5px}.js .demo{opacity:0;animation:fade-up .8s var(--ease) .3s forwards}.demo-wrap{animation:float 7s ease-in-out infinite}.demo .bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface);font-size:12.5px;color:var(--muted)}.demo .bar i{width:10px;height:10px;border-radius:50%;background:var(--line)}.demo .bar i:nth-child(1){background:#f26b6b}.demo .bar i:nth-child(2){background:#f2b26b}.demo .bar i:nth-child(3){background:#6bd39a}.demo .bar span{margin-left:auto;font-family:var(--font-mono)}.demo .chat{padding:16px;display:grid;gap:12px;min-height:330px}.demo .msg{max-width:92%;padding:10px 12px;border-radius:12px;line-height:1.45}.demo .user{justify-self:end;background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);border-bottom-right-radius:4px}.demo .user .cursor{display:inline-block;width:2px;height:1em;background:currentColor;vertical-align:-2px;margin-left:2px;animation:blink .9s steps(1) infinite}.demo.sent .user .cursor{display:none}.demo .bot{justify-self:start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px;width:100%;max-width:100%}.js .demo .d-reply{opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}.js .demo .d-reply.show{opacity:1;transform:none}.demo table{border-collapse:collapse;width:100%;margin:8px 0;font-variant-numeric:tabular-nums}.demo td{padding:4px 6px;border-bottom:1px solid var(--line);font-size:12.5px}.demo td:first-child{color:var(--muted)}.demo td:last-child{text-align:right;color:var(--ok);font-weight:600}.js .demo .d-row{opacity:0;transform:translate(-8px);transition:opacity .35s var(--ease),transform .35s var(--ease)}.js .demo .d-row.show{opacity:1;transform:none}.demo ol{margin:6px 0 0;padding-left:18px}.demo li{margin:2px 0}.demo .typing{display:inline-flex;gap:3px;padding:6px 0 0}.demo .typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.demo .typing i:nth-child(2){animation-delay:.2s}.demo .typing i:nth-child(3){animation-delay:.4s}.demo.static .d-row,.demo.static .d-reply{opacity:1!important;transform:none!important}.demo.static .typing,.demo.static .cursor{display:none}.marquee{overflow:hidden;border-block:1px solid var(--line);background:var(--surface);padding-block:12px;mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent)}.marquee .track{display:flex;gap:10px;width:max-content;animation:marquee 60s linear infinite}.marquee:hover .track{animation-play-state:paused}.marquee .chip{font-size:13px;padding:5px 11px}.marquee .chip:hover{transform:translateY(-2px);box-shadow:var(--shadow);text-decoration:none}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}.stat b{display:block;font-family:var(--font-display);font-size:34px;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.stat span{font-size:13px;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;counter-reset:step}.step{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;position:relative;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .2s}.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--accent)}.step .n{width:32px;height:32px;border-radius:10px;background:var(--grad);color:var(--on-accent);display:grid;place-items:center;font-family:var(--font-mono);font-size:13px;font-weight:600;margin-bottom:10px;box-shadow:0 6px 14px var(--accent-glow)}.step b{display:block;font-family:var(--font-display);font-size:17px;margin-bottom:4px}.step p{margin:0;font-size:14px;color:var(--muted)}.step .ghost{position:absolute;right:-10px;bottom:-22px;font-family:var(--font-display);font-size:96px;font-weight:700;color:var(--accent-soft);line-height:1;pointer-events:none;transition:transform .4s var(--ease)}.step:hover .ghost{transform:translate(-6px,-6px) rotate(-4deg)}.actionbar{display:none}@media(max-width:720px){.actionbar{display:flex;gap:8px;position:fixed;left:12px;right:12px;bottom:12px;z-index:45;padding:8px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg)}.actionbar .btn{flex:1}body.has-actionbar{padding-bottom:76px}}.section-nl{background:var(--surface);background-image:radial-gradient(600px circle at 90% 0%,var(--accent-soft),transparent 60%)}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:28px;padding-block:36px 28px}.demo .chat{min-height:0}.steps{grid-template-columns:1fr}}.nav-toggle{display:none;margin-left:auto;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;align-items:center;justify-content:center;padding:0}.nav-toggle .bars{display:grid;gap:4px;width:18px}.nav-toggle .bars i{display:block;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s var(--ease),opacity .2s;transform-origin:center}.site-header.open .nav-toggle .bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}.site-header.open .nav-toggle .bars i:nth-child(2){opacity:0}.site-header.open .nav-toggle .bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}@media(max-width:720px){.site-header .bar{gap:10px;flex-wrap:nowrap;padding-block:10px}.brand{font-size:18px}.nav-toggle{display:inline-flex}.nav{display:none;position:absolute;left:0;right:0;top:100%;margin:0;padding:8px 12px 14px;flex-direction:column;gap:2px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg);font-size:16px}.site-header.open .nav{display:flex;animation:fade-up .25s var(--ease)}.nav a{padding:12px 10px;border-radius:8px;color:var(--ink)}.nav a:after{display:none}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.nav a:hover{background:var(--surface-2)}.nav .theme-toggle{margin:8px 10px 0;width:auto;height:40px;border-radius:10px;padding:0 14px;gap:8px;justify-content:flex-start;font:inherit;font-size:14px;color:var(--ink)}.nav .theme-toggle:after{content:"Switch theme"}.nav .theme-toggle:hover{transform:none}body.menu-open{overflow:hidden}}body:before{content:"";position:fixed;left:-10%;right:-10%;top:-30vh;height:75vh;z-index:-1;pointer-events:none;background:radial-gradient(40% 60% at 20% 40%,var(--blob-1),transparent 70%),radial-gradient(35% 55% at 75% 30%,var(--blob-2),transparent 70%),radial-gradient(30% 50% at 50% 85%,var(--blob-3),transparent 70%);filter:blur(50px);opacity:.85;animation:aurora 24s ease-in-out infinite alternate}@keyframes aurora{0%{transform:translate3d(-3%,0,0) rotate(-2deg) scale(1)}to{transform:translate3d(3%,5%,0) rotate(2deg) scale(1.08)}}@keyframes vt-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.85) translateY(6px)}to{opacity:1;transform:none}}@keyframes fade-out{to{opacity:0;transform:translate(14px) scale(.98)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg) scale(1.08)}75%{transform:rotate(6deg) scale(1.04)}}.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad);z-index:50;box-shadow:0 0 12px var(--accent-glow);transition:width .1s linear}.js .brand .mark{animation:wiggle 1.2s var(--ease) .6s 1}.js .section>nav[aria-label=Breadcrumb],.js .section>.eyebrow,.js .section>h1,.js .section>.lede,.js .section>.btn-row,.js .section>.small.muted:first-of-type,.js .cat-hero>div>*{opacity:0;animation:fade-up .7s var(--ease) forwards}.js .section>nav[aria-label=Breadcrumb]{animation-delay:0ms}.js .section>.eyebrow,.js .cat-hero>div>:nth-child(1){animation-delay:60ms}.js .section>h1,.js .cat-hero>div>:nth-child(2){animation-delay:.14s}.js .section>.lede,.js .cat-hero>div>:nth-child(3){animation-delay:.24s}.js .section>.btn-row,.js .section>.small.muted:first-of-type,.js .cat-hero>div>:nth-child(4){animation-delay:.32s}.js .cat-hero>div>:nth-child(5){animation-delay:.4s}.js .cat-hero>div>:nth-child(6){animation-delay:.48s}.js .stagger{opacity:0;animation:fade-up .5s var(--ease) forwards;animation-delay:calc(var(--i, 0) * 45ms + .12s)}.js .reveal.slide-l{transform:translate(-28px)}.js .reveal.slide-r{transform:translate(28px)}.js .reveal.in{opacity:1;transform:none}.js .filters{opacity:0;animation:fade-up .6s var(--ease) .2s forwards}.js .packlist>li{opacity:0;animation:fade-up .5s var(--ease) forwards;animation-delay:calc(var(--i, 0) * 60ms + .15s)}.slotbar{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden;margin:8px 0 4px;max-width:440px}.slotbar .fill{height:100%;width:0;background:var(--grad);border-radius:4px;transition:width 1.1s var(--ease) .15s}.reveal.in .slotbar .fill,html:not(.js) .slotbar .fill{width:var(--w, 0%)}.js .skill-page>.tags>*{opacity:0;animation:pop-in .45s var(--ease) forwards}.js .skill-page>.tags>:nth-child(1){animation-delay:80ms}.js .skill-page>.tags>:nth-child(2){animation-delay:.14s}.js .skill-page>.tags>:nth-child(3){animation-delay:.2s}.js .skill-page>.tags>:nth-child(4){animation-delay:.26s}.js .skill-page>.tags>:nth-child(5){animation-delay:.32s}.js .skill-page>.tags>:nth-child(n+6){animation-delay:.38s}.js .skill-page>h1{opacity:0;animation:fade-up .7s var(--ease) .16s forwards}.js .skill-page>.lede{opacity:0;animation:fade-up .7s var(--ease) .26s forwards}.js .skill-page .actions>*{opacity:0;animation:pop-in .5s var(--ease) forwards}.js .skill-page .actions>:nth-child(1){animation-delay:.34s}.js .skill-page .actions>:nth-child(2){animation-delay:.4s}.js .skill-page .actions>:nth-child(3){animation-delay:.46s}.js .skill-page .actions>:nth-child(4){animation-delay:.52s}.js .skill-page .layout{opacity:0;animation:fade-up .7s var(--ease) .42s forwards}#skill-text:after{content:"▍";color:var(--code-ph);margin-left:2px;animation:blink 1s steps(1) infinite}.slots i{transition:background .3s,border-color .3s}.slots i.on{animation:pop .4s var(--ease)}.js .plan .row{animation:fade-up .45s var(--ease) both;animation-delay:calc(var(--i, 0) * 40ms)}.plan .row.removing{animation:fade-out .25s var(--ease) forwards}.js .fields>.field{opacity:0;animation:fade-up .5s var(--ease) forwards;animation-delay:calc(var(--i, 0) * 50ms + .2s)}.btn.saved{animation:pop .4s var(--ease)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body:before{animation:none}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.js .reveal,.js .hero-title .w,.js .hero .lede,.js .hero .btn-row,.js .hero .hero-meta,.js .demo,.js .demo .d-row,.js .demo .d-reply{opacity:1;transform:none}.marquee .track{animation:none;flex-wrap:wrap;width:auto}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
