:root{--color-bg:#f3f6f8;--color-bg-elevated:#fff;--color-ink:#102033;--color-ink-muted:#4a5d73;--color-border:#d5dee8;--color-accent:#0f7a6c;--color-accent-hover:#0b5f54;--color-accent-soft:#d8f0eb;--color-hero-from:#e8f1f4;--color-hero-via:#d6e8e4;--color-hero-to:#f3f6f8;--color-danger:#9b2c2c;--color-success:#176b45;--font-display:"Syne", "Avenir Next", sans-serif;--font-body:"Source Sans 3", "Segoe UI", sans-serif;--space-page:clamp(1.25rem, 4vw, 2.5rem);--max-width:68rem;--radius:.35rem;--shadow-soft:0 18px 50px #10203314;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);color:var(--color-ink);background:radial-gradient(1200px 600px at 10% -10%, #0f7a6c1f, transparent 55%), radial-gradient(900px 500px at 100% 0%, #2f5c8c1a, transparent 50%), linear-gradient(180deg, var(--color-hero-from), var(--color-hero-to) 42%, var(--color-bg));background-attachment:fixed;margin:0;font-size:1.0625rem;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent);text-underline-offset:.15em}a:hover{color:var(--color-accent-hover)}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .6em;font-weight:700;line-height:1.15}p{margin:0 0 1rem}ul,ol{margin:0 0 1rem;padding-left:1.25rem}code{background:var(--color-accent-soft);border-radius:.25rem;padding:.1em .35em;font-size:.92em}pre{border-radius:var(--radius);color:#e8f1f4;background:#102033;padding:1rem;overflow-x:auto}pre code{color:inherit;background:0 0;padding:0}.skip-link{left:var(--space-page);z-index:100;background:var(--color-ink);color:#fff;border-radius:var(--radius);padding:.5rem .85rem;position:absolute;top:-100px}.skip-link:focus{top:.75rem}.container{width:min(100% - (var(--space-page) * 2), var(--max-width));margin-inline:auto}.site-header{z-index:40;backdrop-filter:blur(12px);background:#f3f6f8d1;border-bottom:1px solid #d5dee8cc;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-ink);font-size:1.35rem;font-weight:800;text-decoration:none}.brand:hover{color:var(--color-accent)}.nav{flex-wrap:wrap;align-items:center;gap:.35rem 1.1rem;display:flex}.nav a{color:var(--color-ink-muted);font-weight:600;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--color-ink)}.site-footer{border-top:1px solid var(--color-border);color:var(--color-ink-muted);margin-top:4rem;padding:2rem 0 2.75rem;font-size:.95rem}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.btn{border-radius:var(--radius);font-family:var(--font-body);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.75rem 1.2rem;font-size:1rem;font-weight:700;text-decoration:none;transition:transform .18s,background-color .18s,border-color .18s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:hover{background:var(--color-accent-hover);color:#fff}.btn--secondary{border-color:var(--color-border);color:var(--color-ink);background:0 0}.btn--secondary:hover{border-color:var(--color-ink-muted);color:var(--color-ink)}.btn-row{flex-wrap:wrap;gap:.75rem;display:flex}.hero{padding:clamp(3rem,10vh,6rem) 0 clamp(2.5rem,6vh,4rem);animation:.7s both rise-in}.hero__brand{font-family:var(--font-display);letter-spacing:-.045em;color:var(--color-ink);margin:0 0 1rem;font-size:clamp(3rem,10vw,5.5rem);font-weight:800;line-height:.95}.hero__headline{max-width:22ch;margin-bottom:.85rem;font-size:clamp(1.4rem,3.2vw,2rem)}.hero__lede{max-width:38rem;color:var(--color-ink-muted);margin-bottom:1.75rem;font-size:1.15rem}.section{padding:3rem 0}.section__title{font-size:clamp(1.6rem,3vw,2.1rem)}.section__lede{color:var(--color-ink-muted);max-width:40rem}.app-list{gap:1.25rem;margin-top:1.75rem;display:grid}.app-item{border-top:1px solid var(--color-border);gap:.75rem;padding:1.5rem 0;animation:.65s both rise-in;display:grid}.app-item:last-child{border-bottom:1px solid var(--color-border)}.app-item__name{margin:0;font-size:1.45rem}.app-item__tagline{color:var(--color-ink-muted);margin:0}.app-item__meta{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;display:flex}.badge{letter-spacing:.02em;text-transform:uppercase;color:var(--color-accent);background:var(--color-accent-soft);border-radius:.25rem;padding:.2rem .5rem;font-size:.8rem;font-weight:700;display:inline-block}.prose{max-width:48rem}.prose :where(h2,h3){margin-top:1.75rem}.prose a{font-weight:600}.docs-layout{gap:2rem;padding:2rem 0 3rem;display:grid}@media (width>=860px){.docs-layout{grid-template-columns:15rem minmax(0,1fr);gap:2.5rem}}.docs-nav{align-self:start}@media (width>=860px){.docs-nav{position:sticky;top:5rem}}.docs-nav__title{font-family:var(--font-display);margin:0 0 .75rem;font-size:.95rem;font-weight:700}.docs-nav ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.docs-nav a{color:var(--color-ink-muted);font-weight:600;text-decoration:none}.docs-nav a:hover,.docs-nav a[aria-current=page]{color:var(--color-accent)}.form{gap:1rem;max-width:32rem;display:grid}.form label{gap:.35rem;font-weight:600;display:grid}.form input,.form textarea{width:100%;font:inherit;color:var(--color-ink);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius);padding:.7rem .8rem}.form input:focus-visible,.form textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.form__status{min-height:1.5rem;font-weight:600}.form__status[data-state=success]{color:var(--color-success)}.form__status[data-state=error]{color:var(--color-danger)}.form__hint{color:var(--color-ink-muted);font-size:.95rem;font-weight:400}.page-hero{padding:2.5rem 0 1rem;animation:.55s both rise-in}.page-hero h1{font-size:clamp(2rem,5vw,3rem)}.muted{color:var(--color-ink-muted)}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
