*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{background:#0a0a0a;color:#e2ddd5;font-family:Geist,Inter,system-ui,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}button,a{touch-action:manipulation}.page.svelte-1xmjmrw{min-height:100dvh;display:flex;flex-direction:column}html{overflow-x:hidden}.page.drawer-open.svelte-1xmjmrw body{overflow:hidden}.page.svelte-1xmjmrw>:where(.svelte-1xmjmrw):not(.bar){margin-top:50px}.page.svelte-1xmjmrw>.bar:where(.svelte-1xmjmrw){margin-top:0}.bar.svelte-1xmjmrw{display:flex;align-items:center;gap:.75rem;padding:0 1.1rem;height:50px;border-bottom:1px solid rgba(255,255,255,.06);position:fixed;top:0;left:0;right:0;z-index:100;background:#0a0a0af2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);flex-shrink:0}.brand.svelte-1xmjmrw{display:inline-flex;align-items:center;gap:0;text-decoration:none;color:#5b8def;font-size:1.1rem;font-weight:700;letter-spacing:-.02em;line-height:1}.brand.svelte-1xmjmrw span:where(.svelte-1xmjmrw){color:#f0ece3;letter-spacing:-.03em}.bar-title.svelte-1xmjmrw{font-size:.875rem;font-weight:600;color:#e2ddd5;margin-left:.1rem}.ham-btn.svelte-1xmjmrw{margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.1);padding:.4rem .6rem;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;min-height:36px;transition:border-color .15s,background .15s}.ham-btn.svelte-1xmjmrw:hover{border-color:#fff3;background:#ffffff0a}.ham.svelte-1xmjmrw{display:flex;flex-direction:column;gap:4px;width:18px}.ham.svelte-1xmjmrw span:where(.svelte-1xmjmrw){display:block;height:1.5px;background:#9b9790;border-radius:2px;transition:transform .2s,opacity .2s,width .2s;transform-origin:center}.ham.open.svelte-1xmjmrw span:where(.svelte-1xmjmrw):nth-child(1){transform:translateY(5.5px) rotate(45deg)}.ham.open.svelte-1xmjmrw span:where(.svelte-1xmjmrw):nth-child(2){opacity:0;transform:scaleX(0)}.ham.open.svelte-1xmjmrw span:where(.svelte-1xmjmrw):nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.sidebar-wrap.svelte-1xmjmrw{display:none}@media(min-width:900px){.sidebar-wrap.svelte-1xmjmrw{display:block;position:fixed;top:50px;left:0;bottom:0;width:220px;border-right:1px solid rgba(255,255,255,.06);overflow-y:auto;background:#0a0a0a;z-index:50}.content.svelte-1xmjmrw,.foot.svelte-1xmjmrw{margin-left:220px}.ham-btn.svelte-1xmjmrw{display:none}}.sidebar.svelte-1xmjmrw{padding:1.25rem .7rem;display:flex;flex-direction:column;gap:1px}.sidebar-label.svelte-1xmjmrw{font-size:.6rem;text-transform:uppercase;letter-spacing:.2em;color:#3a3a3a;padding:.3rem .8rem .5rem;margin-bottom:.1rem;font-weight:600}.overlay.svelte-1xmjmrw{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.drawer.svelte-1xmjmrw{position:fixed;top:0;right:0;bottom:0;width:min(280px,82vw);background:#0f0f0f;border-left:1px solid rgba(255,255,255,.08);box-shadow:-20px 0 60px #0009;z-index:201;display:flex;flex-direction:column;transform:translate(100%);transition:transform .28s cubic-bezier(.22,1,.36,1)}.drawer.open.svelte-1xmjmrw{transform:translate(0)}@media(min-width:900px){.drawer.svelte-1xmjmrw,.overlay.svelte-1xmjmrw{display:none!important}}.drawer-head.svelte-1xmjmrw{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem .75rem;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.drawer-label.svelte-1xmjmrw{font-size:.6rem;letter-spacing:.2em;color:#444;text-transform:uppercase;font-weight:600}.drawer-close.svelte-1xmjmrw{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:#666;font-size:.8rem;cursor:pointer;min-height:32px;min-width:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.drawer-close.svelte-1xmjmrw:hover{color:#e2ddd5;background:#ffffff1a}.drawer-list.svelte-1xmjmrw{padding:.5rem .6rem;display:flex;flex-direction:column;gap:1px;overflow-y:auto;flex:1}.nav-item.svelte-1xmjmrw{display:flex;align-items:center;gap:.65rem;padding:.55rem .8rem;background:transparent;border:0;color:#5a5654;font-family:inherit;font-size:.8125rem;cursor:pointer;text-align:left;min-height:42px;border-radius:8px;width:100%;transition:color .18s,background .18s;position:relative}.nav-item.svelte-1xmjmrw:hover{color:#c8c4bc;background:#ffffff0a}.nav-item.active.svelte-1xmjmrw{color:#e8e4dc;background:#5b8def1f;font-weight:500}.nav-item.active.svelte-1xmjmrw:before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:2px;background:#5b8def;border-radius:0 2px 2px 0}.nav-dot.svelte-1xmjmrw{width:7px;height:7px;border-radius:50%;flex-shrink:0;border:1.5px solid rgba(255,255,255,.15);background:transparent;transition:all .2s cubic-bezier(.22,1,.36,1)}.nav-dot.active.svelte-1xmjmrw{background:#5b8def;border-color:#5b8def;box-shadow:0 0 0 3px #5b8def26,0 0 8px #5b8def66;transform:scale(1.15)}.nav-text.svelte-1xmjmrw{flex:1;letter-spacing:.01em}.content.svelte-1xmjmrw{padding:0 1rem 2rem;min-width:0}@media(min-width:600px){.content.svelte-1xmjmrw{padding:0 1.5rem 2.5rem}}@media(min-width:900px){.content.svelte-1xmjmrw{padding:0 2rem 3rem}}.hero.svelte-1xmjmrw{padding:1.75rem 0 1rem}@media(min-width:900px){.hero.svelte-1xmjmrw{padding:2rem 0 1.5rem}}h1.svelte-1xmjmrw{font-size:clamp(1.75rem,5vw,3rem);font-weight:700;letter-spacing:-.04em;color:#f0ece3;margin-bottom:.5rem}.hero.svelte-1xmjmrw p:where(.svelte-1xmjmrw){font-size:.875rem;color:#666;line-height:1.65;max-width:56ch}.sec.svelte-1xmjmrw{padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.05);scroll-margin-top:calc(50px + 1rem)}.sec.last.svelte-1xmjmrw{border-bottom:0;margin-bottom:0}.sec-hd.svelte-1xmjmrw{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.65rem}.sec-n.svelte-1xmjmrw{font-size:.625rem;letter-spacing:.12em;color:#5b8def;font-weight:500}h2.svelte-1xmjmrw{font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:600;letter-spacing:-.025em;color:#f0ece3}h3.svelte-1xmjmrw{font-size:.625rem;text-transform:uppercase;letter-spacing:.14em;color:#555;font-weight:500;margin:1.25rem 0 .6rem}.sec-desc.svelte-1xmjmrw{font-size:.875rem;color:#888;line-height:1.65;margin-bottom:1rem;max-width:58ch}.sec-desc.svelte-1xmjmrw code:where(.svelte-1xmjmrw),.sec.svelte-1xmjmrw p:where(.svelte-1xmjmrw) code:where(.svelte-1xmjmrw){font-family:JetBrains Mono,monospace;font-size:.85em;color:#5b8def;background:#5b8def1a;padding:.05em .28em;border-radius:3px}.tbl-wrap.svelte-1xmjmrw{overflow-x:auto;border:1px solid rgba(255,255,255,.07);border-radius:8px;margin-bottom:.875rem;-webkit-overflow-scrolling:touch}table.svelte-1xmjmrw{width:100%;border-collapse:collapse;font-size:.8125rem}th.svelte-1xmjmrw,td.svelte-1xmjmrw{text-align:left;padding:.55rem .8rem;border-bottom:1px solid rgba(255,255,255,.05);white-space:nowrap;vertical-align:top}td.svelte-1xmjmrw:last-child{white-space:normal}th.svelte-1xmjmrw{font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:#555;font-weight:500;background:#ffffff05}td.yes.svelte-1xmjmrw{color:#5b8def}td.svelte-1xmjmrw code:where(.svelte-1xmjmrw){font-family:JetBrains Mono,monospace;font-size:.85em;color:#5b8def;background:#5b8def1a;padding:.03em .22em;border-radius:3px}.codeblock.svelte-1xmjmrw{border:1px solid rgba(255,255,255,.07);background:#080808;border-radius:8px;overflow:hidden;margin-bottom:.875rem}.codeblock.notop.svelte-1xmjmrw{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.code-hd.svelte-1xmjmrw{display:flex;align-items:center;justify-content:space-between;padding:.45rem .875rem;border-bottom:1px solid rgba(255,255,255,.07);background:#ffffff05}.code-lang.svelte-1xmjmrw{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:#555;font-weight:500}.copybtn.svelte-1xmjmrw{background:transparent;border:1px solid rgba(255,255,255,.08);color:#666;font-family:inherit;font-size:.6875rem;padding:.22rem .6rem;cursor:pointer;border-radius:5px;min-height:28px;transition:color .15s,border-color .15s}.copybtn.svelte-1xmjmrw:hover{color:#5b8def;border-color:#5b8def}pre.svelte-1xmjmrw{padding:.875rem 1rem;overflow-x:auto;font-family:JetBrains Mono,ui-monospace,monospace;font-size:clamp(.7rem,.7rem + .15vw,.8rem);line-height:1.7;color:#c8c4bc;-webkit-overflow-scrolling:touch;-moz-tab-size:2;tab-size:2}pre.svelte-1xmjmrw code:where(.svelte-1xmjmrw){color:inherit;background:none;border:none;padding:0}.langtabs.svelte-1xmjmrw{display:flex;border:1px solid rgba(255,255,255,.07);border-bottom:0;border-radius:8px 8px 0 0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.langtabs.svelte-1xmjmrw::-webkit-scrollbar{display:none}.ltab.svelte-1xmjmrw{background:transparent;border:0;border-right:1px solid rgba(255,255,255,.07);color:#666;font-family:inherit;font-size:.75rem;padding:.6rem .9rem;cursor:pointer;white-space:nowrap;min-height:40px;transition:color .15s,background .15s}.ltab.svelte-1xmjmrw:last-child{border-right:0}.ltab.svelte-1xmjmrw:hover{color:#e2ddd5;background:#ffffff08}.ltab.on.svelte-1xmjmrw{background:#5b8def;color:#000;font-weight:600}.lgrid.svelte-1xmjmrw{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid rgba(255,255,255,.07);border-radius:10px;overflow:hidden;margin-bottom:.875rem}@media(min-width:480px){.lgrid.svelte-1xmjmrw{grid-template-columns:repeat(3,1fr)}}.lcard.svelte-1xmjmrw{padding:.875rem 1rem;border-right:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);display:flex;flex-direction:column;gap:.25rem}.lcard.svelte-1xmjmrw:nth-child(2n){border-right:0}@media(min-width:480px){.lcard.svelte-1xmjmrw:nth-child(2n){border-right:1px solid rgba(255,255,255,.05)}.lcard.svelte-1xmjmrw:nth-child(3n){border-right:0}}.lcard.svelte-1xmjmrw:nth-last-child(-n+2){border-bottom:0}@media(min-width:480px){.lcard.svelte-1xmjmrw:nth-last-child(-n+2){border-bottom:1px solid rgba(255,255,255,.05)}.lcard.svelte-1xmjmrw:nth-last-child(-n+3){border-bottom:0}}.lval.svelte-1xmjmrw{font-size:clamp(1.2rem,3vw,1.5rem);font-weight:700;letter-spacing:-.03em;color:#f0ece3}.llbl.svelte-1xmjmrw{font-size:.6875rem;color:#555}.foot.svelte-1xmjmrw{display:flex;align-items:center;gap:.5rem;padding:.8rem 1.1rem;border-top:1px solid rgba(255,255,255,.06);font-size:.75rem;color:#444;flex-shrink:0}.foot-brand.svelte-1xmjmrw{display:inline-flex;align-items:center;gap:0;text-decoration:none;color:#5b8def;font-weight:700;font-size:.9rem;line-height:1}.foot-brand.svelte-1xmjmrw span:where(.svelte-1xmjmrw){color:#6b6762;letter-spacing:-.02em}.foot-sep.svelte-1xmjmrw{color:#2a2a2a}.foot-link.svelte-1xmjmrw{color:#444;text-decoration:none;transition:color .15s}.foot-link.svelte-1xmjmrw:hover{color:#e2ddd5}.foot-right.svelte-1xmjmrw{display:flex;align-items:center;gap:.35rem;margin-left:auto}.foot-icon.svelte-1xmjmrw{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;border:1px solid rgba(255,255,255,.07);color:#555;text-decoration:none;transition:color .15s,border-color .15s,background .15s}.foot-icon.svelte-1xmjmrw:hover{border-color:#ffffff2e;background:#ffffff0d;color:#25d366}.foot-portfolio.svelte-1xmjmrw:hover{color:#ec4899!important;border-color:#ec48994d}.foot-portfolio.svelte-1xmjmrw img:where(.svelte-1xmjmrw){border-radius:3px;object-fit:contain;opacity:.7;transition:opacity .15s}.foot-portfolio.svelte-1xmjmrw:hover img:where(.svelte-1xmjmrw){opacity:1}
