:root{--bg:#f7f7f5;--ink:#0a0a0a;--sage:#c9cabb;--pink:#f08fd0;--mut:#5c5c58;--line:#0a0a0a;--sans:"Figtree",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.6}
a{color:inherit}
.dots{background-image:radial-gradient(var(--ink) 1.3px,transparent 1.6px);background-size:86px 86px;background-position:20px 20px}
nav{display:flex;align-items:center;gap:18px;padding:28px 48px;font-size:15px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:21px;text-decoration:none}
.logo i{width:30px;height:30px;background:var(--ink);border-radius:30px 30px 0 0;position:relative;display:inline-block}
.logo i:after{content:"";position:absolute;left:8px;top:11px;width:14px;height:19px;background:var(--bg);border-radius:14px 14px 0 0}
.sl{font-size:26px;font-weight:200;margin:0 8px}nav a.l{text-decoration:none;margin-right:6px}nav a.l:hover{text-decoration:underline}.sp{flex:1}
.btn{display:inline-block;background:var(--ink);color:var(--bg);padding:22px 36px;text-decoration:none;font-size:15px;border:0;cursor:pointer;font-family:var(--sans)}
.btn:hover{background:#2b2b2b}.ghost{margin-left:36px;text-decoration:none;font-size:15px}
.hero{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:40px 48px 70px;min-height:80vh;align-items:end}
h1{font-size:clamp(42px,5.4vw,72px);line-height:1.2;letter-spacing:-.03em;font-weight:500;margin-bottom:44px}
.mono{font-family:var(--mono);font-size:13px}
.art{position:relative;width:100%}.art svg{width:100%;height:auto;overflow:visible}
.art text{font-family:var(--mono);font-size:12px;fill:var(--ink)}
.cap{font-family:var(--mono);font-size:13px;max-width:300px;margin:14px 0 0 0}
section{padding:80px 48px;border-top:1px solid var(--ink)}
h2{font-size:38px;letter-spacing:-.02em;font-weight:500;margin-bottom:12px}
.lead{max-width:560px;color:var(--mut);margin-bottom:40px}
.term{background:var(--ink);color:#e9e9e4;font-family:var(--mono);font-size:14px;padding:22px 26px;min-height:250px;white-space:pre-wrap;box-shadow:12px 12px 0 var(--sage)}
.term .g{color:#7fd88f}.term .y{color:#ecd66b}.term .r{color:#ff7b7b}.term .d{color:#8b8b85}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--ink)}
.cell{padding:28px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--bg)}
.cell:nth-child(3n){border-right:0}.cell:nth-last-child(-n+3){border-bottom:0}
.cell b{display:block;font-size:19px;margin:12px 0 6px;font-weight:600}.cell p{font-size:14px;color:var(--mut)}
.tag{font-family:var(--mono);font-size:12px;background:var(--sage);padding:2px 8px}.tag.p{background:var(--pink)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.install{display:flex;align-items:center;gap:0;border:1px solid var(--ink);font-family:var(--mono);font-size:14px;max-width:520px}
.install code{flex:1;padding:16px 18px;overflow:auto;white-space:nowrap}.install button{border:0;border-left:1px solid var(--ink);background:var(--pink);padding:16px 18px;font-family:var(--mono);cursor:pointer}
footer{padding:36px 48px;border-top:1px solid var(--ink);display:flex;justify-content:space-between;font-family:var(--mono);font-size:13px}
/* docs */
.docs{display:grid;grid-template-columns:240px 1fr;gap:56px;padding:20px 48px 80px}
aside{position:sticky;top:20px;align-self:start;font-size:14px}aside a{display:block;padding:6px 12px;text-decoration:none;border-left:2px solid transparent;color:var(--mut)}
aside a.on{border-color:var(--ink);color:var(--ink);font-weight:600}aside h4{font-family:var(--mono);font-size:12px;margin:18px 12px 6px;text-transform:uppercase;color:var(--mut)}
article{max-width:780px}article section{padding:0 0 56px;border:0}article h2{font-size:30px;margin-top:8px;padding-top:24px;border-top:1px solid var(--ink)}
article h3{font-size:18px;margin:26px 0 8px}article p,article li{margin-bottom:10px}article ul{padding-left:20px}
pre{background:var(--ink);color:#e9e9e4;padding:18px 22px;overflow:auto;font-family:var(--mono);font-size:13px;margin:14px 0;box-shadow:8px 8px 0 var(--sage)}
code{font-family:var(--mono);font-size:.9em;background:var(--sage);padding:1px 6px}pre code{background:none;padding:0}
table{width:100%;border-collapse:collapse;margin:12px 0 24px;font-size:14px;border:1px solid var(--ink)}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--ink);vertical-align:top}th{background:var(--sage);font-family:var(--mono);font-size:12px;text-transform:uppercase}
td:first-child{white-space:nowrap}
.art .big{font-size:38px}.art .sm{font-size:10px}.dh{font-size:46px;margin:0 0 8px}
nav{position:relative}.links{display:flex;align-items:center;gap:18px;flex:1}.burger{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--ink);background:linear-gradient(var(--ink),var(--ink)) center 15px/20px 2px no-repeat,linear-gradient(var(--ink),var(--ink)) center 27px/20px 2px no-repeat var(--bg);cursor:pointer}
article section{scroll-margin-top:72px}
@media(max-width:900px){
nav{padding:16px 20px;gap:12px}.sl{display:none}.burger{display:block}
.links{display:none;position:absolute;top:100%;left:0;right:0;z-index:20;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:6px 20px 14px}
.links.open{display:flex}.links .l{margin:0;padding:14px 0;font-size:17px;border-bottom:1px solid #d9d9d4}.links .sp{display:none}
.hero,.two,.docs{grid-template-columns:1fr;padding-left:20px;padding-right:20px}
.hero{min-height:0;padding-top:28px;padding-bottom:48px;gap:36px;align-items:start}
.art text{font-size:16px}.art .big{font-size:40px}.art .sm{font-size:13px}.cap{max-width:none}
.grid{grid-template-columns:1fr}.cell{border-right:0!important;border-bottom:1px solid var(--ink)!important}.cell:last-child{border-bottom:0!important}
section{padding:56px 20px}h2{font-size:30px}.two{gap:36px}.dots{background-size:56px 56px;background-position:14px 14px}
.term{font-size:12.5px;padding:16px;min-height:230px;box-shadow:6px 6px 0 var(--sage);overflow-x:auto}
footer{flex-direction:column;gap:8px;padding:28px 20px}
.docs{gap:0;padding-top:0}
aside{display:flex;gap:8px;overflow-x:auto;white-space:nowrap;position:sticky;top:0;z-index:10;background:var(--bg);margin:0 -20px 24px;padding:12px 20px;border-bottom:1px solid var(--ink);scrollbar-width:none}
aside::-webkit-scrollbar{display:none}aside h4{display:none}
aside a{flex:none;border:1px solid var(--ink);padding:6px 14px;color:var(--ink)}aside a.on{background:var(--ink);color:var(--bg)}
.dh{font-size:36px}article h2{font-size:26px}
table{display:block;overflow-x:auto}td:first-child{white-space:normal;min-width:130px}
pre{font-size:12px;padding:14px 16px;box-shadow:5px 5px 0 var(--sage)}}
@media(max-width:560px){.btn{display:block;text-align:center;padding:18px 24px}.ghost{display:block;margin:18px 0 0;text-align:center}
h1{margin-bottom:32px}.install{flex-direction:column;align-items:stretch}.install code{width:100%}.install button{border-left:0;border-top:1px solid var(--ink)}}
@media(max-width:380px){.logo{font-size:19px}.term{font-size:11.5px}}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.stats div{padding:26px 48px;border-right:1px solid var(--ink);font-family:var(--mono);font-size:13px}.stats div:last-child{border-right:0}
.stats b{display:block;font-size:34px;font-family:var(--sans);font-weight:500;line-height:1.2}
.pg{display:grid;grid-template-columns:340px 1fr;border:1px solid var(--ink)}
.pgl{padding:22px;border-right:1px solid var(--ink);display:flex;flex-direction:column;gap:10px}
.pgh{font-family:var(--mono);font-size:12px;text-transform:uppercase;margin-top:6px}.pgh small{color:var(--mut);text-transform:none;margin-left:6px}
#pgfiles button{display:flex;justify-content:space-between;gap:8px;width:100%;font-family:var(--mono);font-size:12.5px;padding:8px 10px;background:none;border:1px solid var(--ink);margin-bottom:-1px;cursor:pointer;text-align:left;color:var(--ink)}
#pgfiles button:hover{background:var(--sage)}#pgfiles em{font-style:normal;background:var(--pink);padding:0 6px;flex:none}
.pgb,.pgk button{font-family:var(--mono);font-size:12.5px;padding:10px 12px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer}
.pg label{display:flex;flex-direction:column;gap:4px;font-family:var(--mono);font-size:12px}
.pg input:not([type=range]),.pg select{font-family:var(--mono);font-size:13px;padding:8px;border:1px solid var(--ink);background:var(--bg);width:100%;border-radius:0}
.pg input[type=range]{accent-color:var(--ink);width:100%}
.pgr{padding:22px;display:flex;flex-direction:column;gap:12px;min-width:0}
.pgcmd{display:flex;border:1px solid var(--ink);font-family:var(--mono);font-size:13px}.pgcmd code{flex:1;padding:10px 12px;overflow-x:auto;white-space:nowrap;background:none}
.pgcmd button{border:0;border-left:1px solid var(--ink);background:var(--pink);font-family:var(--mono);padding:0 14px;cursor:pointer}
.pgstat{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px}.track{flex:1;height:6px;background:var(--sage)}.track i{display:block;height:100%;width:0;background:var(--ink)}
.pgt{height:340px;overflow-y:auto;box-shadow:none;min-height:0;font-size:13px;white-space:normal}.pgt div{white-space:pre-wrap}
.pgk{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-family:var(--mono);font-size:12px;color:var(--mut)}.pgk button{background:var(--bg);color:var(--ink)}
.cta{text-align:center;background:var(--ink);color:var(--bg)}.cta .btn{background:var(--pink);color:var(--ink)}.cta .install{border-color:var(--bg);text-align:left}
.cfg{margin:0}
@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}.stats div{padding:20px;border-bottom:1px solid var(--ink)}.stats div:nth-child(2n){border-right:0}
.pg{grid-template-columns:1fr}.pgl{border-right:0;border-bottom:1px solid var(--ink)}.pgt{height:280px}.pgr,.pgl{padding:16px}}

/* nav + hero share one viewport-capped block (98dvh) */
.top{display:flex;flex-direction:column;height:98dvh;max-height:98dvh;overflow:hidden}
.top .hero{flex:1;min-height:0;padding-top:24px;padding-bottom:48px}
.top .hero>div:first-child{align-self:end}
.top h1{font-size:clamp(38px,min(5.4vw,8dvh),72px);margin-bottom:clamp(20px,4dvh,44px)}
.top .art{height:100%;display:flex;flex-direction:column;justify-content:flex-end;min-height:0}
.top .art svg{flex:1 1 0;min-height:0;width:100%;height:auto}
@media(max-width:900px){.top{height:auto;max-height:none;overflow:visible}
.top .hero{flex:none}.top .art{height:auto}.top .art svg{flex:none;height:auto}.top h1{font-size:clamp(38px,11vw,56px)}}